Self-position estimating device for leg type movable robots

ABSTRACT

Based on a detected or estimated value of an actual posture of a predetermined part, such as a body  3 , of a robot  1  and a deviation the actual posture from a posture of a desired gait, a posture rotational deviation&#39;s variation is determined as the temporal variation of the deviation, and the position of the robot  1  (for example, the position where the robot comes into contact with a floor) is estimated on the assumption that the robot  1  rotates about a rotation center by the rotational deviation&#39;s variation. In addition, in accordance with the difference between the estimated position and the estimated position of the robot  1  determined by an inertial navigation method using an accelerometer or the like, the estimated position of the robot  1  determined by the inertial navigation method is corrected, thereby improving the precision of the estimated position.

TECHNICAL FIELD

The present invention relates to a self-position estimating device for aleg type movable robot.

BACKGROUND ART

Conventionally, a leg type movable robot has a problem that a reactionforce caused by the moving robot swinging each leg overcomes thefriction force between the foot (that is, the end portion of the leg)and the floor, causing a rotational slipping (spin) of the foot withrespect to the floor, a rotation of the posture of the whole robot aboutthe vertical axis and, thus, a deviation from a desired gait.

In addition, desired gaits to be generated are not always ones forstraight walking with the body always kept in a vertical (upright)posture. A desired gait may involve a rotation or a forward, rearward,leftward or rightward inclination of the whole robot or the bodythereof. That is, a desired gait may involve a posture rotation of thewhole robot (or a posture rotation of a representative part, such as thebody). Thus, in this specification, the posture rotation in the desiredgait is referred to as a desired posture rotation. The phenomenon to beprimarily addressed in this specification is a deviation of an actualposture rotation of the whole robot (or an actual posture rotation of arepresentative part, such as the body) from the desired posturerotation. Strictly speaking, this phenomenon should be referred to as a“perturbation from the desired posture rotation” or “a posture rotationperturbation”. However, this phenomenon will be abbreviated as a“posture rotation” hereinafter unless there is no possibility ofconfusion with the “desired posture rotation”.

In the following, the phenomenon of directional deviation from a desiredgait due to a posture rotation of the whole robot about the verticalaxis will be particularly referred to as a spin.

In addition, if the robot runs, the vertical position of the robot tendsto deviate from the desired gait during a period in which all the legsfloat in the air (that is, a floating period).

Not to deviate from the trajectory of the desired gait thereof, that is,the desired path, the robot has to estimate the self position/posturewith high precision.

In addition, if the robot has an environment recognition device, such asa video camera, mounted thereon, the self position/posture has to beestimated with high precision in order to capture a target object to begazed, such as a landmark previously registered in map information, at apredetermined position in the image (for example, the center of theimage).

In addition, in order for the environment recognition device, such as avideo camera, to determine the position of a target object in a globalcoordinate system set in the environment (that is, a coordinate systemfixed with respect to the floor in the environment in which the robotmoves), the self position/posture in the global coordinate system has tobe estimated with high precision.

As a method of estimating the self position/posture without using theenvironment recognition device, such as a video camera, an inertialnavigation system used for guiding a rocket or the like has been known.

However, the inertial navigation system estimates the position of therobot by integrating the detection value of the accelerometer two times,and thus, integration errors tend to accumulate to a significant extent.Therefore, the accelerometer is required to have an extremely highdetection accuracy. In addition, in order to use the inertial navigationsystem, the robot has to start moving from a state where it is fixedwith respect to the floor (or ground) so that the initial values of thepositions and velocity of the robot are 0. However, it is difficult tokeep the leg type movable robot at complete rest, because the jointshave to constantly move slightly to stabilize the posture of the roboteven when the robot, as a whole, is at rest in an upright posture.Therefore, the inertial navigation calculation is started in a statewhere the initial values of the position and velocity are not 0, andthus, the estimation error tends to be significant.

As for rockets and airplanes, a global positioning system (GPS) is usedwhich corrects the self position/posture based on the relativepositional relationship between the rocket or airplane and an externaldevice, such as a satellite or a radar or a beacon on the ground. Asimilar system might be used for robots, too. However, it is difficultto achieve measurement of the height of a foot (that is, the end of aleg) of the robot from the floor with a precision on the order ofmillimeters or centimeters at a low cost, for example.

The present invention has been devised in view of such circumstances,and an object thereof is to provide a self-position estimating devicethat can estimate the self-position of a robot with high precision. Inparticular, an object of the present invention is to provide aself-position estimating device that can estimate the selfposition/posture of a robot with high precision even if the robot is ina state where the movement acceleration varies greatly horizontally orvertically, in a state where all the legs float in the air, which occurswhen the robot is running, for example, or in a state where a posturerotation (or a spin) of the whole robot occurs due to a rotationalslipping of a foot sole with respect to the floor.

In addition, an object of the present invention is to provide aself-position estimating device that can estimate the self-position of arobot and then use the estimated self-position to achieve adequategazing control for controlling the direction of an environmentrecognition device, such as a video camera, mounted on the robot in sucha manner that a target object is captured at an appropriate position inan image taken by the environment recognition device.

In addition, an object of the present invention is to provide aself-position estimating device that can recognize an object, such as alandmark, precise information about which has been previously given tothe device, with environment recognition means, such as a video camera,and achieve a higher precision of estimation of the self-position of therobot based on the information resulting from the recognition.

Furthermore, an object of the present invention is to provide aself-position estimating device that can recognize, using an estimatedself position/posture, the position/posture or geometry of a floorsurface or an obstacle with high precision using environment recognitionmeans, such as a video camera.

DISCLOSURE OF THE INVENTION

In order to attain the objects described above, in a leg type movablerobot that is controlled to follow a determined desired gait, aself-position estimating device for a leg type movable robot accordingto a first implementation of the present invention comprises: posturerotational deviation calculating means for determining a temporalvariation of posture rotational deviation, which is the differencebetween a detected or estimated value of an actual posture of apredetermined part of the robot and a desired posture of thepredetermined part in the desired gait, as a posture rotationaldeviation's variation; rotation center determining means for determiningthe rotation center of the variation of the posture rotationaldeviation; and position estimating means for determining an estimatedposition of the robot, that is, an estimated value of the position ofthe robot, on the assumption that the robot rotates about the rotationcenter by the posture rotational deviation's variation.

According to the first implementation, it is assumed that the variationof the posture rotational deviation, which the difference between thedetected or estimated value of the actual posture of the predeterminedpart of the robot and the desired posture of the predetermined part inthe desired gait, is equivalent to a rotation of the whole robot about acertain rotation center at the posture rotational deviation's variation.In actual, for example, a rotational slipping (a spin) occurring betweena foot (an end portion of a leg) of the robot and a floor appears as avariation of the posture rotational deviation. According to the presentinvention, since the estimated position of the robot is determined onthe assumption described above, it is possible to quantitatively keeptrack of an actual variation of the position of the robot due to therotational slipping or the like and determine the estimated position,which is the estimated value of the actual position of the robot. As aresult, the robot can estimate the self-position with high precision.

Here, the detected or estimated value of the actual posture of thepredetermined part can be obtained using a sensor, such as aninclination sensor or a gyro sensor. However, the detected or estimatedvalue may be appropriately corrected accessorily using the estimatedposition of the robot, an acceleration value detected by anaccelerometer or the like, according to the invention. In principle, thedetected or estimated value of the actual posture of the predeterminedpart may be of any kind, regardless of the means for acquiring it, asfar as the value represents the actual posture of the predetermined partwith relatively high precision. This holds true for the implementationsother than the first implementation.

More specifically, in the first implementation, it is preferable thatthe position estimating means comprises means for determining a secondcoordinate system, which is obtained by rotating a first coordinatesystem that describes the desired gait about the rotation center by theposture rotational deviation's variation, and the position estimatingmeans determines the estimated position of the robot seen from a globalcoordinate system in such a manner that the robot position seen from thefirst coordinate system, which is recognized from at least any of adesired movement with the desired gait, a displacement detection valueof a joint of the robot and a desired displacement value of the joint,agrees with the estimated position of the robot seen from the secondcoordinate system (second implementation). Here, the global coordinatesystem is a coordinate system that is fixed to the floor (ground) in theenvironment in which the robot moves.

According to the second implementation, the estimated position of therobot seen from the global coordinate is determined in such a mannerthat the position of the robot seen from the first coordinate system,that is, the position of the robot recognized from at least any of thedesired gait, the joint displacement detection value and the jointdisplacement desired value on the assumption that the robot moves,without a rotational slipping or the like, following the desiredmovement with the desired gait, the joint displacement detection valueor the joint displacement desired value, agrees with the estimatedposition of the robot seen from the second coordinate system, which isobtained by rotating the first coordinate system about the rotationcenter by the posture rotational deviation's variation (that is, thecoordinate components of the position in one coordinate system agreewith the respective ones in the other coordinate system). As a result,the estimated position of the robot which adequately reflects thevariation of the posture rotational deviation can be determined withhigh precision. Incidentally, the first coordinate system may be acoordinate system determined in the vicinity of the contact surface ofthe foot of the leg landing via a landing operation of the robot eachtime the robot lands on the floor (that is, a supporting leg coordinatesystem described later with reference to embodiments of the presentinvention), for example, or may be the same as the global coordinatesystem.

In the first or second implementation, the predetermined part ispreferably a body (that is, a base body from which the legs extend) ofthe robot (third implementation). This is because the influence of therotational slipping or the like of the robot is likely to appear as avariation of the posture of the body of the robot.

In the first to third implementations, it is preferable that the posturerotational deviation includes at least a posture rotational deviationcomponent of the predetermined part in a yaw direction (fourthimplementation). This is because the position of the robot is sensitiveto the variation of the posture rotational deviation in the yawdirection.

In the first to fourth implementations, it is preferable that, when thedesired gait of the robot is a gait including a floating period in whichall the legs of the robot float in the air, such as a running gait, therotation center determining means sets the rotation center at the centerof gravity of the robot during the floating period and sets the rotationcenter at an actual floor reaction force central point, a desired ZMP ofthe desired gait or a point in the vicinity of the points during aperiod other than the floating period (fifth implementation). That is,during the floating period the variation of the posture rotationaldeviation is a rotation generally about the center of gravity of therobot. In a period other than the floating period, that is, in a periodduring which any of the legs is in contact with the floor, the rotationcenter of variation of the posture rotational deviation generally liesin the vicinity of the actual floor reaction force central point (thatis, the central point of the total floor reaction force actually appliedto the robot) or the desired ZMP. Therefore, the rotation centerdetermined as described above is adequately adapted to the actualsituation, and thus, the precision of the estimated position of therobot can be adequately assured.

If the desired gait is a gait that includes no floating period (in whichany of the legs is always in contact with the floor), such as a walkinggait of the robot, the rotation center may be set at the actual floorreaction force central point or the desired ZMP or in the vicinitythereof, for example.

In one of the first to fifth implementations, the posture rotationaldeviation calculating means is means for successively determining theposture rotational deviation's variation at each instant, and theposition estimating means successively determines the estimated positionof the robot at each instant using the posture rotational deviation'svariation at each instant (sixth implementation). According to thisimplementation, since the estimated position at each instant issuccessively determined, the self-position of the robot can berecognized substantially continuously. In the sixth implementation, theposture rotational deviation's variation is the variation rate ofposture rotational deviation.

Alternatively, according to another implementation, the posturerotational deviation calculating means is means for determining aposture rotational deviation's variation between landings, which is aposture rotational deviation's variation for a period from the last-timeleg landing of a leg to the current-time leg landing, each time a leg ofthe robot lands on a floor via a landing operation of the robot, and theposition estimating means determines the estimated position of the robotat each landing using the posture rotational deviation's variationbetween landings (seventh implementation).

According to this implementation, since the estimated position of therobot is determined each time the robot lands on the floor when thestability of the position of the robot is high, the reliability of theestimated position can be increased.

In the first to seventh implementations, it is preferable that theposition of the robot estimated by the position estimating means is acontact position of the leg, which comes into contact with the floor inthe landing operation of the robot (eighth implementation). The contactposition of the leg of the robot is unlikely to show a minor variationcompared with other parts of the robot, such as the body, and thus, ishighly stable. Thus, by choosing the contact position as the estimatedposition of the robot, the estimated position can be determined withhigh reliability.

Furthermore, in the first to eighth implementations, it is preferablethat the self-position estimating device further comprises floorreaction force detecting means for detecting a floor reaction forceapplied to the robot, and the position estimating means estimates adeformation of the robot based on the detected floor reaction force anddetermines the estimated position of the robot using at least theestimated deformation (ninth implementation). According to thisimplementation, since the estimated position of the robot is determinedtaking into consideration the deformation of the foot or the like of therobot due to the floor reaction force applied to the robot, theprecision of the estimated position can be increased.

In a leg type movable robot that is controlled to follow a determineddesired gait, a self-position estimating device for a leg type movablerobot according to a tenth implementation of the present inventioncomprises: an accelerometer for detecting a translational accelerationthat is mounted on the robot; an angular velocity sensor for detectingan angular velocity in an inertial space that is mounted on the robot;geometrical position estimating means for determining a first estimatedposition, which is a geometrically estimated value of the verticalposition of a predetermined part of the robot or the center of gravityof the robot, based on at least any of a desired movement with thedesired gait, a displacement detection value of a joint of the robot anda desired displacement value of the joint; and inertial-navigation-likeposition estimating means for determining a second estimated position,which is an inertial-navigation-like estimated value of the verticalposition of the predetermined part or the total center of gravity of therobot, by an inertial navigation method based on at least a detectionvalue of the accelerometer and a detection value of the angular velocitysensor and correcting the second estimated position based on at leastthe difference between the first estimated position and the secondestimated position.

According to the tenth implementation, the first estimated position,which is a geometrically estimated value of the vertical position (thatis, the vertical position determined through a kinematics calculation orthe like) of a predetermined part of the robot or the center of gravityof the robot, is determined based on at least a desired movement withthe desired gait, a displacement detection value of a joint of the robotand a desired displacement value of the joint. Furthermore, the secondestimated position, which is an inertial-navigation-like estimated valueof the vertical position of the predetermined part or the total centerof gravity of the robot, is determined by an inertial navigation methodbased on at least a detection value of the accelerometer and a detectionvalue of the angular velocity sensor. Then, the second estimatedposition is corrected based on the difference between the firstestimated position and the second estimated position. That is, thesecond estimated position determined based on the inertial navigationmethod is corrected using the first estimated position determined basedon a geometrical method different from the inertial navigation method.According to this implementation, the precision of the second estimatedposition can be increased while preventing a drift (that is, anaccumulation of integration errors) which tends to occur in the secondestimated position. That is, the precision of estimation of the verticalposition of the predetermined part or the total center of gravity can beincreased.

In the tenth implementation, as in the third implementation, thepredetermined part is preferably the body of the robot (eleventhimplementation).

In the tenth or eleventh implementation, it is preferable that theself-position estimating device further comprises floor reaction forcedetecting means for detecting a floor reaction force applied to therobot, and the geometrical position estimating means estimates adeformation of the robot based on the detected floor reaction force anddetermines the first estimated position using the estimated deformation(twelfth implementation). According to this implementation, since thefirst estimated position is determined taking into consideration thedeformation of the foot of the robot due to the floor reaction force asin the ninth implementation, the precision of the first estimatedposition can be increased. As a result, the second estimated positioncan be corrected more adequately, and the precision of the secondestimated position can be increased.

In the tenth to twelfth implementations, it is preferable theinertial-navigation-like position estimating means corrects the secondestimated position in such a manner that the difference between thefirst estimated position and the second estimated position is broughtclose to 0 (thirteenth implementation). In this case, the secondestimated position can be corrected adequately so that the precision ofthe second estimated position is increased (in other words, so that theerror thereof decreases).

Furthermore, in the tenth to thirteenth implementations, it ispreferable that, when the desired gait of the robot is a gait includinga floating period in which all the legs of the robot float in the air,the inertial-navigation-like position estimating means sets thecorrection amount of the second estimated position at substantially 0 inthe floating period (fourteenth implementation). During the floatingperiod, the robot is not in contact with the floor, so that theprecision of the first estimated position, which is the geometricallyestimated vertical position of the predetermined part or total center ofgravity of the robot, tends to decrease. Thus, in the fourteenthimplementation, the correction amount of the second estimated positionis set at 0 in the floating period. In this way, the second estimatedposition can be prevented from being corrected inadequately using thefirst estimated position of low reliability in the floating period, andthe precision of the second estimated position can be assured for a longterm.

In a leg type movable robot that is controlled to follow a determineddesired gait, a self-position estimating device for a leg type movablerobot according to a fifteenth implementation of the present inventioncomprises: an accelerometer for detecting a translational accelerationthat is mounted on the robot; posture rotational deviation calculatingmeans for determining a temporal variation of posture rotationaldeviation, which is the difference between a detected or estimated valueof an actual posture of a predetermined part of the robot and a desiredposture of the predetermined part in the desired gait, as a posturerotational deviation's variation; rotation center determining means fordetermining the rotation center of the variation of the posturerotational deviation; geometrical position estimating means fordetermining a first estimated position, which is an estimated value ofthe position of the predetermined part or the total center of gravity ofthe robot, on the assumption that the robot rotates about the rotationcenter by the posture rotational deviation's variation; andinertial-navigation-like position estimating means for calculating asecond estimated position, which is an estimated value of the positionof the predetermined part or the total center of gravity of the robot,by an inertial navigation method based on at least a detection value ofthe accelerometer and a detected or estimated value of an actual postureof the predetermined part, and correcting the second estimated positionbased on at least the difference between the first estimated positionand the second estimated position.

According to the fifteenth implementation, the first estimated position,which is the estimated value of the position of the predetermined partor total center of gravity of the robot is determined in the mannerdescribed above concerning the first implementation. More specifically,preferably, the contact position of the leg having come into contactwith the floor in the landing operation of the robot is determined inthe manner described above concerning the eighth implementation, andthen, the first estimated position is determined with respect to thecontact position based on at least any of a desired movement with thedesired gait, a displacement detection value of a joint of the robot anda desired displacement value of the joint. According to the fifteenthimplementation, a second estimated position, which is an estimated valueof the position of the predetermined part or the total center ofgravity, is calculated by an inertial navigation method based on atleast a detection value of the accelerometer and a detected or estimatedvalue of an actual posture of the predetermined part, and the secondestimated position is corrected based on the difference between thefirst estimated position and the second estimated position. That is, thesecond estimated position determined based on the inertial navigationmethod is corrected using the first estimated position determinedgeometrically taking into consideration a positional variation of therobot due to a rotational slipping or the like of the robot. Accordingto this implementation, the precision of the second estimated positioncan be increased while preventing a drift (that is, an accumulation ofintegration errors) which tends to occur in the second estimatedposition. That is, the precision of estimation of the position of thepredetermined part or the total center of gravity can be increased.

More specifically, in the fifteenth implementation, it is preferablethat the geometrical position estimating means comprises means fordetermining a second coordinate system, which is obtained by rotating afirst coordinate system that describes the desired gait about therotation center by the posture rotational deviation's variation, and thegeometrical position estimating means determines the first estimatedposition of the predetermined part or the total center of gravity seenfrom a global coordinate system in such a manner that the position ofthe predetermined part or the total center of gravity seen from thefirst coordinate system, which is recognized from at least any of adesired movement with the desired gait, a displacement detection valueof a joint of the robot and a desired displacement value of the joint,agrees with the first estimated position of the predetermined part orthe total center of gravity seen from the second coordinate system(sixteenth implementation). Thus, in determining the first estimatedposition, the same advantage as in the second implementation can beprovided.

In the fifteenth or sixteenth implementation, as in the thirdimplementation, the predetermined part is preferably the body of therobot (seventeenth implementation).

In the fifteenth to seventeenth implementations, as in the fourthimplementation, it is preferable that the posture rotational deviationincludes at least a posture rotational deviation component of thepredetermined part in a yaw direction (eighteenth implementation).

In the fifteenth to eighteenth implementations, it is preferable thatthe self-position estimating device further comprises floor reactionforce detecting means for detecting a floor reaction force applied tothe robot, and the geometrical position estimating means estimates adeformation of the robot based on the detected floor reaction force anddetermines the first estimated position using the estimated deformation(nineteenth implementation). According to this implementation, since thefirst estimated position is determined taking into consideration thedeformation of the foot of the robot due to the floor reaction force asin the ninth implementation, the precision of the first estimatedposition can be increased. As a result, the second estimated positioncan be corrected more adequately, and the precision of the secondestimated position can be increased.

In the fifteenth to nineteenth implementations, it is preferable that,when the desired gait of the robot is a gait including a floating periodin which all the legs of the robot float in the air, the rotation centerdetermining means sets the rotation center at the center of gravity ofthe robot during the floating period and sets the rotation center at anactual floor reaction force central point, a desired ZMP of the desiredgait or a point in the vicinity of the points during a period other thanthe floating period (twentieth implementation). According to thisimplementation, as in the fifth implementation, the rotation centerdetermined can be adequately adapted to the actual situation, and thus,the precision of the first estimated position can be adequately assured.

In the fifteenth to twentieth implementations, it is preferable theinertial-navigation-like position estimating means corrects the secondestimated position in such a manner that the difference between thefirst estimated position and the second estimated position is broughtclose to 0 (twenty-first implementation). In this case, as in thethirteenth implementation, the second estimated position can becorrected adequately so that the precision of the second estimatedposition is increased (in other words, so that the error thereofdecreases).

Furthermore, in the fifteenth to twenty-first implementations, it ispreferable that the desired gait of the robot is a gait including afloating period in which all the legs of the robot float in the air, andthe inertial-navigation-like position estimating means sets thecorrection amount of the second estimated position at substantially 0 inthe floating period (twenty-second implementation).

According to this implementation, as in the fourteenth implementation,since the correction amount of the second estimated position is set at 0in the floating period, the second estimated position can be preventedfrom being corrected inadequately using the first estimated position oflow reliability in the floating period, and the precision of the secondestimated position can be assured for a long term.

In a leg type movable robot that is controlled to follow a determineddesired gait, a self-position estimating device for a leg type movablerobot according to a twenty-third implementation of the presentinvention is characterized in that the self-position estimating devicecomprises: floor reaction force detecting means for detecting a floorreaction force applied to the robot; posture rotational deviationcalculating means for determining a temporal variation of posturerotational deviation, which is the difference between a detected orestimated value of an actual posture of a predetermined part of therobot and a posture of the predetermined part in the desired gait, as aposture rotational deviation's variation; rotation center determiningmeans for determining the rotation center of the variation of theposture rotational deviation; geometrical position estimating means fordetermining a first estimated position, which is an estimated positionof the predetermined part or the total center of gravity of the robot,on the assumption that the robot rotates about the rotation center bythe posture rotational deviation's variation; and dynamical positionestimating means for calculating a second estimated position, which isan estimated position of the predetermined part or the total center ofgravity of the robot, through a dynamical calculation based on at leasta detection value of the floor reaction force detecting means and adetected or estimated value of the actual posture and correcting thesecond estimated position based on at least the difference between thefirst estimated position and the second estimated position.

According to the twenty-third implementation, the first estimatedposition is determined in the same manner as in the fifteenthimplementation. On the other hand, the second estimated position, whichis an estimated position of the predetermined part or the total centerof gravity of the robot, is calculated through a dynamical calculationbased on at least a detection value of the floor reaction forcedetecting means and a detected or estimated value of an actual postureof the predetermined part, and the second estimated position iscorrected based on the difference between the first estimated positionand the second estimated position. Here, the value obtained by dividingthe floor reaction force by the total mass of the robot, subtracting thegravitational acceleration from the quotient, and inverting the sign ofthe difference corresponds to the detection value of the accelerometer.As a result, the second estimated position is determined and correctedin the same manner as in the fifteenth implementation. Therefore,according to the twenty-third implementation, as in the fifteenthimplementation, the precision of the second estimated position can beincreased while preventing a drift (that is, an accumulation ofintegration errors) which tends to occur in the second estimatedposition. That is, the precision of estimation of the position of thepredetermined part or the total center of gravity can be increased.

More specifically, in the twenty-third implementation, it is preferablethat the geometrical position estimating means comprises means fordetermining a second coordinate system, which is obtained by rotating afirst coordinate system that describes the desired gait about therotation center by the posture rotational deviation's variation, and thegeometrical position estimating means determines the first estimatedposition of the predetermined part or the total center of gravity seenfrom a global coordinate system in such a manner that the position ofthe predetermined part or the total center of gravity seen from thefirst coordinate system, which is recognized from at least any of adesired movement with the desired gait, a displacement detection valueof a joint of the robot and a desired displacement value of the joint,agrees with the first estimated position of the predetermined part orthe total center of gravity seen from the second coordinate system(twenty-fourth implementation). Thus, in determining the first estimatedposition, the same advantage as in the second implementation can beprovided.

In the twenty-third or twenty-fourth implementation, as in the thirdimplementation, the predetermined part is preferably the body of therobot (twenty-fifth implementation).

In the twenty-third to twenty-fifth implementations, as in the fourthimplementation, it is preferable that the posture rotational deviationincludes at least a posture rotational deviation component of thepredetermined part in a yaw direction (twenty-sixth implementation).

Furthermore, in the twenty-third to twenty-sixth implementations, it ispreferable that the geometrical position estimating means estimates adeformation of the robot based on the detected floor reaction force anddetermines the first estimated position using the estimated deformation(twenty-seventh implementation). According to this implementation, sincethe first estimated position is determined taking into consideration thedeformation of the robot due to the floor reaction force as in the ninthimplementation, the precision of the first estimated position can beincreased. As a result, the second estimated position can be correctedmore adequately, and the precision of the second estimated position canbe increased.

In the twenty-third to twenty-seventh implementations, it is preferablethat, when the desired gait of the robot is a gait including a floatingperiod in which all the legs of the robot float in the air, the rotationcenter determining means sets the rotation center at the center ofgravity of the robot during the floating period and sets the rotationcenter at an actual floor reaction force central point, a desired ZMP ofthe desired gait or a point in the vicinity of the points during aperiod other than the floating period (twenty-eighth implementation).According to this implementation, as in the fifth implementation, therotation center determined can be adequately adapted to the actualsituation, and thus, the precision of the first estimated position canbe adequately assured.

In the twenty-third to twenty-eighth implementations, it is preferablethe dynamical position estimating means corrects the second estimatedposition in such a manner that the difference between the firstestimated position and the second estimated position is brought close to0 (twenty-ninth implementation). In this case, as in the thirteenthimplementation, the second estimated position can be correctedadequately so that the precision of the second estimated position isincreased (in other words, so that the error thereof decreases).

Furthermore, in the twenty-third to twenty-ninth implementations, it ispreferable that, when the desired gait of the robot is a gait includinga floating period in which all the legs of the robot float in the air,the dynamical position estimating means sets the correction amount ofthe second estimated position at substantially 0 in the floating period(thirtieth implementation).

According to this implementation, as in the fourteenth implementation,since the correction amount of the second estimated position is set at 0in the floating period, the second estimated position can be preventedfrom being corrected inadequately using the first estimated position oflow reliability in the floating period, and the precision of the secondestimated position can be assured for a long term.

Furthermore, in the first to ninth implementations described above, itis preferable that at least any of the detected or estimated value ofthe actual posture of the predetermined part and the estimated positionof the robot is corrected based on at least information about theposition of a target object, such as a floor surface or an obstacle, ona map stored previously and information about the relative position ofthe robot with respect to the target object, which is recognized withenvironment recognition means, such as an image pickup device, mountedon the robot (thirty-first implementation).

Similarly, in the tenth to fourteenth implementations described above,it is preferable that the self-position estimating device furthercomprises means for correcting at least one of the first estimatedposition and the second estimated position based on at least informationabout the position of a target object, such as a floor surface or anobstacle, on a map stored previously and information about the relativeposition of the robot with respect to the target object, which isrecognized with environment recognition means, such as an image pickupdevice, mounted on the robot (thirty-second implementation).

Similarly, in the fifteenth to twenty-ninth implementations describedabove, it is preferable that the self-position estimating device furthercomprises means for correcting at least one of the first estimatedposition, the second estimated position and the detected or estimatedvalue of the actual posture of the predetermined part based on at leastinformation about the position of a target object, such as a floorsurface or an obstacle, on a map stored previously and information aboutthe relative position of the robot with respect to the target object,which is recognized with environment recognition means, such as an imagepickup device, mounted on the robot (thirty-third implementation).

According to the thirty-first to thirty-third implementations, a targetobject, such as a landmark, whose positional information is preciselyprovided on a map, is recognized with environment recognition means, andthe estimated position (the first or second estimated position in thetenth to thirtieth implementations) or the detected or estimated valueof the actual posture of the predetermined part which is required todetermine the estimated position (in the cases of the first to ninthimplementations or the fifteenth to thirtieth implementations) iscorrected based on the information about the relative position betweenthe target object and the robot. Thus, the precision of the estimatedposition (the second estimated position in the tenth to thirtiethimplementations) can be increased.

Furthermore, in the first to ninth implementations, it is preferablethat the self-position estimating device further comprises means forestimating the position of a target object based on at least theposition of the robot estimated by the position estimating means andinformation about the relative position of the robot with respect to thetarget object, which is recognized with environment recognition means,such as an image pickup device, mounted on the robot (thirty-fourthimplementation).

Similarly, in the tenth to thirtieth implementations described above, itis preferable that the self-position estimating device further comprisesmeans for estimating the position of a target object based on at leastthe second estimated position and information about the relativeposition of the robot with respect to the target object, which isrecognized with environment recognition means, such as an image pickupdevice, mounted on the robot (thirty-fifth implementation).

According to the thirty-fourth and thirty-fifth implementations, theposition of the target object can be estimated with high precision byusing the estimated position which is the self-position of the robotdetermined as described above (the second estimated position in thetenth to thirtieth implementations).

Furthermore, in the first to ninth implementations, it is preferablethat the self-position estimating device further comprises means fordetermining the direction of gazing of environment recognition means,such as an image pickup device, mounted on the robot based on at leastthe estimated position of the robot and the position of a target object,such as a floor surface or an obstacle, on a map stored previously(thirty-sixth implementation).

Similarly, in the tenth to thirtieth implementations, it is preferablethat the self-position estimating device further comprises means fordetermining the direction of gazing of environment recognition means,such as an image pickup device, mounted on the robot based on at leastthe second estimated position and the position of a target object, suchas a floor surface or an obstacle, on a map stored previously(thirty-seventh implementation).

According to the thirty-sixth and thirty-seventh implementations, sincethe estimated position which is the self-position of the robotdetermined as described above (the second estimated position in thetenth to thirtieth implementations) is used, the positional relationshipbetween the target object and the robot can be recognized with highprecision. As a result, the environment recognition means can beprecisely controlled and directed toward an intended gazing direction(for example, a direction in which the target object is captured at apredetermined position in (for example, at the center of) the imagetaken by the image pickup device of the environment recognition means).

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a schematic diagram showing a whole arrangement of atwo-legged movable robot, which is a leg type movable robot according toan embodiment of the present invention;

FIG. 2 is a schematic view of an arrangement of a foot portion of eachleg shown in FIG. 1;

FIG. 3 is a detailed cross sectional view of the foot portion of eachleg viewed from the side thereof;

FIG. 4 is a detailed bottom view of the foot portion of each leg;

FIG. 5 is a block diagram showing a control unit provided in the robotshown in FIG. 1; and

FIG. 6 is a block diagram showing a functional arrangement of thecontrol unit shown in FIG. 5.

FIG. 7 is a diagram for illustrating a running gait of the robot;

FIGS. 8( a), 8(b) and 8(c) are graphs showing exemplary settings of afloor reaction force's vertical component of a desired gait, a desiredZMP and a gain for estimating a self position/posture, respectively;

FIG. 9 is a flowchart showing essential steps performed in the controlunit according to a first embodiment;

FIG. 10 is a flowchart showing a self position/posture estimatingprocess shown in the flowchart shown in FIG. 9; and

FIG. 11 is a diagram for illustrating the self position/postureestimating process shown in the flowchart in FIG. 9.

FIG. 12 is a flowchart showing a self position/posture estimatingprocess according to a second embodiment; and

FIG. 13 is a diagram for illustrating the self position/postureestimating process according to the second embodiment.

FIG. 14 is a flowchart showing a self position/posture estimatingprocess according to a third embodiment; and

FIG. 15 is a diagram for illustrating the self position/postureestimating process according to the third embodiment.

FIG. 16 is a flowchart showing a self position/posture estimatingprocess according to a fourth embodiment; and

FIG. 17 is a block diagram showing essential steps of the selfposition/posture estimating process according to the fourth embodiment;

FIGS. 18( a) and 18(b) is diagrams for illustrating the selfposition/posture estimating process according to the fourth embodiment;and

FIG. 19 is a graph showing an exemplary setting of a gain used in theforth embodiment.

FIG. 20 is a flowchart showing a self position/posture estimatingprocess according to a fifth embodiment; and

FIG. 21 is a block diagram showing essential steps of the selfposition/posture estimating process according to the fifth embodiment.

FIG. 22 is a block diagram showing essential steps of a selfposition/posture estimating process according to a sixth embodiment.

FIG. 23 is a front view of an internal arrangement of a head portion ofthe robot according to a seventh embodiment;

FIG. 24 is a side view of the internal arrangement of the head portionof the robot according to the seventh embodiment; and

FIG. 25 is a flowchart showing a self position/posture estimatingprocess according to the seventh embodiment.

BEST MODE FOR CARRYING OUT THE INVENTION

In the following, embodiments of a self-position estimating device for aleg type movable robot according to the present invention will bedescribed with reference to the drawings. In the description, atwo-legged movable robot is taken as an example of the leg type movablerobot.

FIG. 1 is a schematic diagram showing the whole of a two-legged movablerobot, which is a leg type movable robot according to an embodiment ofthe present invention.

As shown in the drawing, a two-legged movable robot (referred to as arobot, hereinafter) 1 comprises a pair of left and right legs (leglinks) 2, 2 extending downward from a body 3 (that is, a base body ofthe robot 1). The legs 2, 2 have the same construction and each have sixjoints. In the order of increasing distance from the body 3, the sixjoints include a hip (waist) joint 10R (10L) for convolution (rotation)(rotation in the yaw direction with respect to the body 3), a hip(waist) joint 12R (12L) for rotation in the roll direction (about the Xaxis), a hip (waist) joint 14R (14L) for rotation in the pitch direction(about the Y axis), a knee joint 16R (16L) for rotation in the pitchdirection, an ankle joint 18R (18L) for rotation in the pitch direction,and an ankle joint 20R (20L) for rotation in the roll direction.Reference symbols R and L represent the right leg and the left leg,respectively.

Under the two ankle joints 18R(L) and 20R(L) of each leg 2, a foot (footportion) 22R(L) which constitutes the end portion of the leg 2 isattached. The body 3 is mounted on the top of the two legs 2, 2 via thehip joints 10R, 10L, 12R, 12L, 14R and 14L. The body 3 houses a controlunit 60 and the like, which will be described in detail later. In FIG.1, for the convenience of illustration, the control unit 60 is shown asbeing external to the body 3.

In each leg 2 configured as described above, the hip joint (or waistjoint) is composed of the joints 10R(L), 12R(L) and 14R(L), and the kneejoint is composed of the joint 16R(L), and the ankle joint is composedof the joints 18R(L) and 20R(L). The hip joint and the knee joint areconnected to each other by a thigh link 24R(L), and the knee joint andthe ankle joint are connected to each other by a crus link 26R(L).

In addition, the body 3 has a pair of left and right arms 5, 5 eachattached to the upper part of either side thereof, and a head 4 ismounted on the top of the body 3. The arms 5, 5 and the head 4 will notbe described in detail, because they are not directly related to theessence of the present invention.

The configuration described above allows the foot 22R(L) of each leg 2to have six degrees of freedom with respect to the body 3. Duringmovement, such as walking, of the robot 1, desired movements of the feet22R and 22L can be achieved by driving the twelve joints of the two legs2, 2 (6*2=12) to appropriate angles (in this specification, the symbol“*” represents multiplication of scalar quantities or outer product ofvector quantities). Thus, the robot 1 can move arbitrarily in athree-dimensional space.

As shown in FIG. 1, each leg 2 has a well-known six-axis force sensor 50disposed below the ankle joints 18R(L) and 20R(L) and between the anklejoints and the foot 22R(L). The six-axis force sensor 50 detects thepresence of landing of the foot 22R (22L) of the leg 2, the floorreaction force (floor-contact load) applied to the leg 2, and the like.The six axis force sensor 50 outputs, to the control unit 60, detectionsignals indicating three directional components Fx, Fy and Fz of thetranslation force of the floor reaction force and three directionalcomponents Mx, My and Mz of the moment thereof. In addition, the body 3has an inclination sensor 54 for detecting the inclination (postureangle) of the body 3 with respect to the Z axis (that is, the verticaldirection (direction of gravity)) and the angular velocity thereof, andthe inclination sensor 54 outputs the detection signals to the controlunit 60. The inclination sensor 54 has a three-axis-directionalaccelerometer and a three-axis-directional gyro sensor (both not shown).The detection signals of the sensors are used to determine theinclination and angular velocity of the body 3 and to estimate the selfposition/posture of the robot 1. In addition, although not shown indetail, each joint in the robot 1 has an electric motor 64 for drivingit (see FIG. 5) and an encoder (rotary encoder) 65 (see FIG. 5) fordetecting the rotation amount of the electric motor 64 (rotation angleof the joint), and the encoder 65 outputs the detection signal to thecontrol unit 60.

Furthermore, although not shown in FIG. 1, a joystick (manipulator) 73(see FIG. 5) for manipulating the robot 1 is provided at an appropriateposition on the robot 1. By manipulating the joystick 73, a requestconcerning the gait of the robot 1, such as a request to turn the robot1 moving straight ahead, can be entered to the control unit 60 asrequired.

FIG. 2 is a schematic diagram showing a basic arrangement of the endportion of the leg 2 (including the foot 22R (22L)) according to thisembodiment. As shown in this drawing, a spring mechanism 70 is providedabove each foot 22R (22L) and between the foot 22R (22L) and thesix-axis force sensor 50, and a foot sole elastic member 71 made of arubber or the like is attached to the foot sole (that is, the bottomsurface of each foot 22R (22L)). The spring mechanism 70 and the footsole elastic member 71 constitute a compliance mechanism 72. Althoughdescribed in detail later, the spring mechanism 70 comprises arectangular guide member (not shown in FIG. 2) mounted on the uppersurface of the foot 22R(L) and a piston member (not shown in FIG. 2)mounted closer to the ankle joint 18R(L) (the ankle joint 20R(L) is notshown in FIG. 2) and the six-axis force sensor 50 and housed in theguide member in such a manner that the piston member can slightly movein the guide member by the action of an elastic member (such as rubberor a spring).

The foot 22R(L) shown by the solid line in FIG. 2 is in a state where nofloor reaction force is applied to the foot. When a floor reaction forceis applied to the leg 2, the spring mechanism 70 and the foot soleelastic member 71 of the compliance mechanism 72 are distorted, therebyshifting the foot 22R(L) to a position/posture as indicated by thedotted line in FIG. 2. The structure of the compliance mechanism 72 isimportant not only for reducing the landing impact but also forenhancing the controllability, as described in detail in Japanese PatentLaid-Open No. 5-305584 previously proposed by the applicant, forexample.

The structure of the foot 22R(L) including the compliance mechanism 72(sometimes referred to as a foot mechanism 22R(L) hereinafter) will bedescribed in detail with reference to FIGS. 3 and 4. FIG. 3 is a crosssectional view of the foot mechanism 22R(L) viewed from the sidethereof, and FIG. 4 is a bottom view of the foot mechanism 22R(L).

The foot mechanism 22R(L) has a substantially planar foot plate member102 as a framework member. The foot plate member 102 has a front endportion (that is, a toe portion) and a rear end portion (that is, a heelportion) slightly curved upward, and the remaining portion thereof isplanar. In addition, a guide member 103 which is rectangular in crosssection and has an axis aligned with the vertical direction is fixed tothe upper surface of the foot plate member 102. In the guide member 103,a movable plate (piston member) 104 is provided in such a manner it canmove substantially vertically along the inner surface of the guidemember 103. The movable plate 104 is connected to the ankle joints18R(L) and 20R(L) via the six-axis force sensor 50.

The movable plate 104 is connected, at the perimeter of the bottomsurface, to the upper surface of the foot plate member 102 via aplurality of elastic members 106 made of an elastic material, such asrubber (springs are shown in the drawing). Thus, the foot plate member102 is connected to the ankle joint 18R(L) via the elastic members 106,the movable plate 104 and the six-axis force sensor 50. The interior ofthe guide member 103 (that is, the space below the movable plate 104) isopened to the atmosphere via an opening or clearance (not shown), sothat the atmospheric air can flow in or out of the interior of the guidemember 103. The guide member 103, the movable plate 104 and the elasticmembers 106 are components of the spring mechanism 70 described abovewith reference to FIG. 2.

To the bottom surface (lower surface) of the foot plate member 102, afloor contact member 71, which serves as the foot sole elastic member 71described above with reference to FIG. 2, is attached. The floor contactmember 71 is an elastic member which is interposed between the footplate member 102 and the floor (that is, an elastic member which is indirect contact with the floor surface) when the foot mechanism 22R(L) isin contact with the floor. In this embodiment, four floor contactmembers 71 are attached to four corners of the foot plate member 102(that is, the both sides of the toe portion of the foot plate member 102and the both sides of the heel portion of the same).

In this embodiment, the floor contact member 71 has a two-layerstructure including a soft layer 107 a made of a relatively soft rubberand a hard layer 107 b made of a relatively hard rubber stacked oneanother, in which the hard layer 107 b is disposed at the bottom so asto serve as a floor contact part which comes into direct contact withthe floor when the leg 2 lands on the floor.

In addition, the foot mechanism 22R(L) has a landing impact reducingdevice 108. The landing impact reducing device 108 comprises a bagmember 109 attached to the bottom surface of the foot plate member 102and a flow path 110 for the air (atmospheric air) serving as acompressible fluid to flow in and out of the interior of the bag member109.

The bag member 109 is provided approximately at the center of the bottomsurface of the foot plate member 102 so that it is surrounded by thefloor contact members 71 described above. The bag member 109 is made ofan elastic material, such as rubber, so that it can be deformed. When itis in a natural state, that is, when it is not deformed by an externalforce, the bag member 109 has a shape of a cylindrical container withthe opening at the top as shown by the solid line in FIG. 3. The openend of the bag member 109 is attached to the bottom surface of the footplate member 102 along the entire perimeter, and thus, is closed by thefoot plate member 102. Furthermore, in the natural state in which it hasa cylindrical-container shape, the bottom of the bag member 109protrudes downward beyond the floor contact members 71. That is, theheight of the bag member 109 (that is, the distance from the bottomsurface of the foot plate member 102 to the bottom of the bag member109) is larger than the thickness of the floor contact members 71.Therefore, in a state where the foot plate member 102 is in contact withthe floor via the floor contact member 71 (that is, in a floor contactstate of the leg 2), the bag member 109 is compressed in the heightdirection by the floor reaction force as shown by the phantom line inFIG. 3.

In this embodiment, the natural state of the bag member 109 in which ithas a cylindrical-container shape is an expanded state thereof. Sincethe bag member 109 is made of an elastic material, the bag member 109has a shape-restoring force to restore itself to the shape in thenatural state (that is, the cylindrical-container shape) when it iscompressed.

The flow path 110 constitutes inlet/outlet means for the air to flowinto and out of the bag member 109. In this embodiment, the flow path110 is a flow opening formed in the foot plate member 102 to communicatethe interior of the bag member 109 and the interior of the guide member103 described above. In this case, since the interior of the guidemember 103 is opened to the atmosphere as described above, the flow path110 serves to communicate the interior of the bag member 109 to theatmosphere. Therefore, the atmospheric air can flow in and out of theinterior of the bag member 109 through the flow path 110, and, when thebag member 109 is in the expanded state (that is, the natural state),the bag member 109 is filled with air and, thus, has an internalpressure equal to the atmospheric pressure. Furthermore, the flow path110 is a throttle path, so that there occurs a fluid resistance when theair flows in and out of the interior of the bag member 109.

FIG. 5 is a block diagram showing an arrangement of the control unit 60.The control unit 60 is constituted by a microcomputer and comprises afirst calculation unit 90 and a second calculation unit 92 (whichconstitute a CPU), an A/D converter 80, a counter 86, a D/A converter96, a RAM 84, a ROM 94 and a bus line 82 for data transmission amongthese components. In the control unit 60, the output signals from thesix-axis force sensors 50 of the legs 2, the inclination sensor 54 (thatis, the accelerometer and the rate gyro sensor), the joystick 73 and thelike are converted into digital values in the A/D converter 80 and thentransmitted to the RAM 84 via the bus line 82. Besides, the outputs fromthe encoders 65 (rotary encoders) at the joints of the robot 1 are inputto the RAM 84 via the counter 86.

The first calculation unit 90 generates a desired gait as describedlater, calculates a joint angle displacement command (that is, a commandvalue of the displacement angle of each joint or the rotation angle ofeach electric motor 64) and transmits the command to the RAM 84. Thesecond calculation unit 92 reads, from the RAM 84, the joint angledisplacement command and the measurement value of the joint angledetermined based on the output signal of each encoder 65, calculates theoperating amount of each joint to be driven and outputs the operatingamount data to the electric motor 64 that drives the joint via the D/Aconverter 96 and a servo amplifier 64 a.

FIG. 6 is a block diagram showing the whole of a functional arrangementof a control device of the leg type movable robot according to thisembodiment. All the parts in FIG. 6 except for the part designated as an“actual robot” are implemented by the functions performed by the controlunit 60 (primarily, functions performed by the first calculation unit 90and the second calculation unit 92). In the following description, thereference symbols R and L will be omitted if there is no need todiscriminate between the left and right legs 2.

The control unit 60 has a gait generator 200 that generates and outputsa desired gait of the robot 1 flexibly and in real time as describedlater, a self position/posture estimator 214 and the like. As describedin detail later, the self position/posture estimator 214 performsfunctions relating to the characteristics of the present invention andestimates the position/posture of the robot 1 (that is, theposition/posture in the global coordinate system).

The desired gait output from the gait generator 200 comprises a desiredbody position/posture trajectory (including a trajectory of a desiredposition of the body 3 and a trajectory of a desired posture of the body3), a desired foot position/posture trajectory (including a trajectoryof a desired position of each foot 22 and a trajectory of a desiredposture of each foot 22), a desired arm posture trajectory (a trajectoryof a desired posture of each arm 5), a desired total floor reactionforce central point trajectory (a desired ZMP trajectory), and a desiredtotal floor reaction force trajectory. If the body 3 has a movablemember other than the legs 2 and the arms 5, a desired position/posturetrajectory of the movable member is added to the desired gait.

Now, meanings or definitions of the terms used in connection with thisembodiment will be additionally described. The term “trajectory” means atime-varying pattern (time-series pattern) and is sometimes referred toalso as a “pattern” in the following description. In addition, the“posture” of a component means an inclination and an orientation of thecomponent collectively. Here, the “inclination” refers to the angle ofthe component with respect to the vertical direction, and the“orientation” refers to the direction of the vector indicating the frontof the component projected onto a horizontal plane. For example, theinclination of the body posture is represented by the inclination angle(posture angle) of the body 3 in the roll direction (about the X axis)with respect to the Z axis (vertical axis) and the inclination angle(posture angle) of the body 3 in the pitch direction (about the Y axis)with respect to the Z axis. Besides, the direction of the body 3 isrepresented by the rotation angle, in the yaw direction (about the Zaxis), of the vector indicating the front of the body 3 projected onto ahorizontal plane. The foot posture is represented by the azimuth anglesof two axes fixedly set to the foot 22. In particular, the landingposture of the foot 22 is basically represented by the direction of thelanding foot 22. Specifically, the landing posture of the foot 22 isrepresented by the vector from the heel to the toe of the landing foot22 projected onto a horizontal plane. In addition, the desired armposture is represented as a relative posture of the whole arm 5 withrespect to the body 3.

The body position means a predetermined position of the body 3, orspecifically, the position of a predetermined representative point ofthe body 3. Similarly, the foot position means the position of apredetermined representative point of each foot 22R (22L). The bodyvelocity means the movement velocity of the representative point of thebody 3, and the foot velocity means the movement velocity of therepresentative point of each foot 22R (22L).

As for the desired gait including the desired body position/posture, theword “desired” will often be omitted in the following description as faras it causes no misunderstanding. The components of the gait other thanthose related to the floor reaction force, that is, the componentsrelated to the movement of the robot 1, such as the footposition/posture and the body position/posture, are collectivelyreferred to as a “movement”.

The floor reaction force applied to each foot 22R(L) (the floor reactionforce composed of the translation force and the moment) is referred toas an “each foot floor reaction force”, and the resultant force of the“each foot floor reaction forces” applied to all (two) the feet 22R and22L of the robot 1 is referred to as a “total floor reaction force”.However, in the following description, there is made little mention ofthe each foot floor reaction force, and therefore, the term “floorreaction force” is used as having the same meaning as the “total floorreaction force” unless otherwise specified.

In general, the desired floor reaction force is represented by the pointof application, and the force (translation force) and the moment thereofapplied to the point. The point of application can be set arbitrarily,so that one desired floor reaction force can be represented in aninfinite number of ways. However, if the desired floor reaction force isrepresented by taking the desired floor reaction force central pointdescribed above as the point of application, the moment of the force is0 except for the vertical component thereof.

Here, in a gait which satisfies the dynamical equilibrium condition, theZMP calculated from a desired movement trajectory agrees with thedesired floor reaction force central point (the ZMP is a point where themoment of the resultant force of the inertial force and gravity appliedto the robot 1, which is calculated from a desired movement trajectory,is 0 except for the vertical component thereof). Therefore, providing adesired floor reaction force central point trajectory means the same asproviding a desired ZMP trajectory (for more information, see PCT PatentPublication WO/02/40224 by the applicants).

Considering such a background, in the specification of PCT PatentPublication WO/02/40224, the desired gait is defined as follows.

-   (a) In a broad sense, the desired gait is a set of a desired    movement trajectory and a desired floor reaction force trajectory    for a period of one or more steps.-   (b) In a narrow sense, the desired gait is a set of a desired    movement trajectory and a ZMP trajectory for a period of one step.-   (c) A gait series is a connection of several gaits.

In the case where the robot 1 walks, if the body's vertical position(body height) is determined by the body height determination methodpreviously proposed in Japanese Patent Laid-Open No. 10-86080 by theapplicants, the translation force component of the floor reaction forceis determined accordingly. Therefore, the ZMP is the only physicalquantity concerning the floor reaction force of the desired gait whichremains to be explicitly determined. Therefore, in the specification ofPCT Patent Publication WO/02/40224, as the definition of the desiredgait in a narrow sense, the definition (b) described above issufficient. On the other hand, in the case where the robot 1 runs, thefloor reaction force vertical component is important for controlling therobot, and therefore, the floor reaction force vertical component ispreferably explicitly determined. Thus, in the PCT application(PCT/JP02/13596) by the applicants or the like, as the definition of thedesired gait in a narrow sense, the following definition (b′) isadopted.

-   (b′) The desired gait in a narrow sense is a set of a desired    movement trajectory, the ZMP trajectory thereof and the floor    reaction force's vertical component trajectory thereof for a period    of one step.

In this specification, the term “desired gait” is used as meaning thedesired gait in the narrow sense unless otherwise specified. Inaddition, the term “one step” in the desired gait is used to mean a legoperation starting from landing of one leg 2 of the robot 1 and endingwith the next landing of the other leg 2.

Of course, a “two-leg supporting period” in a gait refers to a period inwhich the two legs 2, 2 support the weight of the robot 1, a “one-legsupporting period” refers to a period in which either one of the legs 2,2 supports the weight of the robot 1, and a “floating period” refers toa period in which both the legs 2, 2 are away from the floor (floatingin the air).

The leg 2 that doesn't support the weight of the robot 1 during theone-leg supporting period is referred to as a “free leg”, and the leg 2that supports the weight is referred to as a “supporting leg”. When therobot 1 walks, the two-leg supporting period and the one-leg supportingperiod occur alternately, and when the robot 1 runs, the one-legsupporting period and the floating period occur alternately. During thefloating period which occurs when the robot runs, both the two legs 2, 2don't support the weight of the robot 1. However, the leg 2 that hasbeen a free leg during the one-leg supporting period immediatelypreceding the floating period is referred to as a free leg during thefloating period, and the leg 2 that has been a supporting leg during theone-leg supporting period immediately preceding the floating period isreferred to as a supporting leg during the floating period.

The positions/postures of the components of the robot 1 moving with thedesired gait including the desired body posture, the desired bodyposition, the desired foot position/posture and the desired arm postureare described in a supporting leg coordinate system. The supporting legcoordinate system is a coordinate system that is fixed to the floorsurface and has an origin in the contact surface of the foot 22 of thesupporting leg. Specifically, as described in Japanese Patent No.3273443, the supporting leg coordinate system is a coordinate systemthat has: an origin located at an intersection of the contact surfaceand a perpendicular line drawn from the center of the ankle joints ofthe supporting leg, whose foot 22 has been rotated to the horizontalposture without any slipping with respect to the contact surface; an Xaxis corresponding to the horizontal axis extending from the origin tothe toe of the foot 22 of the supporting leg (that is, an axis in theback-and-forth direction of the foot 22); a Z axis corresponding to thevertical axis; and a Y axis corresponding to a coordinate axisperpendicular to the X and Z axes (that is, an axis extending sidewardof the foot 22).

The gait generator 200 according to this embodiment of the presentinvention generates a desired gait comprising a desired bodyposition/posture trajectory, a desired foot position/posture trajectory,a desired ZMP trajectory, a desired floor reaction force's verticalcomponent trajectory and a desired arm posture trajectory based on inputrequired values (desired values) of landing position/posture and landingtime of the foot 22 of the free leg for the next two steps. In thisprocess, some of the parameters determining the trajectories (referredto as gait parameters) are corrected to maintain the continuity of thegait.

The desired gait is generated using a dynamical model of the robot 1.The dynamics model may be a simplified model described in PCT PatentPublication WO/02/40224 described above or a multi-mass model (fullmodel) described in Japanese Patent Laid-Open No. 2002-326173 proposedby the applicants, for example.

The gait generator 200 successively generates desired gaits, on aone-step basis, for steps each starting from landing of one leg 2 of therobot 1 and ending with the next landing of the other leg 2 (that is,desired gaits according to the definition in the narrow sense describedabove). Here, the gait being generated or to be generated is referred toas a “current time gait”, the following gait is referred to as a “nexttime gait”, and the gait following the next time gait is referred to asa “next but one time gait”. In addition, the desired gait generatedimmediately before the current time gait is referred to as a “last timegait”.

Part of the desired gait generated by the gait generator 200 will begenerally described for the sake of illustration. For example, thedesired foot position/posture trajectory is generated using a finiteduration settling filter disclosed in Japanese Patent No. 3233450 by theapplicants. In the generation of the foot position/posture trajectoryusing the finite duration settling filter, for example, the footposition trajectory is generated in such a manner that the foot 22starts moving by gradually accelerating toward the desired landingposition (the required value of landing position), gradually deceleratesto a velocity of 0 or almost 0 before the desired landing time (therequired value of landing time) and stops moving at the desired landingposition at the desired landing time. The same holds true for the footposture trajectory. For the desired foot position/posture trajectorythus generated, the velocity of the foot with respect to the floor atthe instant of landing is 0 or substantially 0. Therefore, inparticular, when the robot 1 runs, the landing impact on the foot havingbeen in the floating period can be reduced.

In addition, if the robot 1 runs in the same manner that a human beingruns as shown in FIG. 7, the desired floor reaction force's verticalcomponent trajectory and the desired ZMP trajectory (specifically, thedesired ZMP trajectory in the X axis direction (that is, theback-and-forth direction of the foot 22 of the supporting leg) in thesupporting leg coordinate system) are set to be patterns shown by thesolid lines in FIGS. 8( a) and 8(b), respectively, for example. In FIG.7, the first drawing schematically shows a state of the two legs 2, 2 ofthe robot 1 at the start of the one-leg supporting period, the seconddrawing schematically shows a state thereof at the middle of the one-legsupporting period, the third drawing schematically shows a state thereofat the end of the one-leg supporting period, the fourth drawingschematically shows a state of the two legs 2, 2 of the robot 1 at themiddle of the floating period, and the fifth drawing schematically showsa state thereof at the end of the floating period (that is, at the startof the next one-leg supporting period).

When the robot 1 runs, the desired floor reaction force's verticalcomponent trajectory principally varies in a trapezoidal shape duringthe one leg supporting period and is kept at 0 during the floatingperiod. On the other hand, when the robot 1 walks, the desired floorreaction force's vertical component trajectory is set as shown by thechain double-dashed line in FIG. 8( a), for example. In this case, thetrapezoidal section of the chain double-dashed line corresponds to thetwo-leg supporting period, and the reversed trapezoidal sectioncorresponds to the one-leg supporting period. Regardless of whether therobot 1 runs or walks, the desired ZMP is set close to the center of thecontact surface (specifically, a supporting polygon) of the leg 2 of therobot 1.

FIG. 9 is a flowchart (structured flowchart) showing a gait generationprocess performed by the gait generator 200 and a self position/postureestimation process performed by the self position/posture estimator 214shown in FIG. 6.

First, in step S010, various initialization operations, such as anoperation of initializing the time t to 0, are conducted.

Then, the process proceeds to step S014 through step S012. In step S014,a timer interruption for each control cycle is waited for. The controlcycle is Δt.

Then, the process proceeds to step S016, where the self position/postureestimator 214 estimates the self position/posture. The processing of thestep S016 characterizes the self-position estimating device for a legtype movable robot according to this application. However, that will bedescribed later.

Then, the process proceeds to step S018, where it is determined whethera gait transition (that is, a point in time when generation of the lasttime gait is completed and generation of a new current time gait is tobe started) is detected or not. If the result of the determination isYES, the process proceeds to step S020, and if the result is NO, theprocess proceeds to step S032. Now, the processings of step S020 and thefollowing steps will be described below. However, the processings aredescribed in detail in PCT Patent Publication WO/02/40224 or PCTapplication PCT/JP02/13596 previously proposed by the applicants, andtherefore, it will be simply described in this specification.

When the process proceeds to step S020, the time t is initialized to 0.Then, the process proceeds to step S022, where a next time gait'ssupporting leg coordinate system (specifically, the position andorientation thereof), a next but one time gait's supporting ledcoordinate system (specifically, the position and orientation thereof),a current time gait's period and a next time gait's period are read in.

The next time gait's supporting leg coordinate system and the next butone time gait's supporting leg coordinate system are determined inaccordance with the definition of the supporting leg coordinate systemdescribed above, based on the required value of landing position/posture(that is, the desired landing position/posture) of the foot 22 of thefree leg for the first step (that is, the foot 22 of the free leg in thecurrent time gait) and the required value of landing position/posture(that is, the desired landing position/posture) of the foot 22 of thefree leg for the second step (that is, the foot 22 of the free leg inthe next time gait), respectively, which are specified throughmanipulation of the joystick 73 or the like.

The current time gait's period and the next time gait's period aredetermined based on the required value of landing time (that is, thedesired landing time) of the foot 22 of the free leg for the first stepand the required value of landing time (that is, the desired landingtime) of the foot 22 of the free leg for the second step, respectively.

The required values of landing position/posture and landing time of thefoot 22 of the free leg, the positions and orientations of thesupporting leg coordinate systems, or the gait's periods may bepreviously stored in a memory as a walking schedule or may be determinedbased on an instruction (request) input via a manipulator, such as thejoystick 73, and a walking history recorded up to that moment.

Then, the process proceeds to step S024, where a gait parameter for anormal turning gait following the current time gait is determined basedon the next time gait's supporting leg coordinate system, the next butone time gait's supporting leg coordinate system, the current timegait's period and the next time gait's period and the like, which aredetermined in step S022. Primarily determined are a foot trajectoryparameter for defining a desired foot position/posture trajectory, areference body posture trajectory parameter for defining a referencetrajectory of a desired body posture, an arm posture trajectoryparameter for defining a desired arm posture trajectory, a ZMPtrajectory parameter for defining a desired ZMP trajectory, and a floorreaction force's vertical component trajectory parameter for defining adesired floor reaction force's vertical component trajectory. Forexample, as for the floor reaction force's vertical componenttrajectory, the point in time or value of an apex in the pattern shownin FIG. 8( a) is determined as the floor reaction force's verticalcomponent trajectory parameter.

The term “normal turning gait” in this specification means a cyclic gaitthat, if it is repeated, results in no discontinuity in the movement ofthe robot 1 at the boundaries between the gaits (hereinafter, the“normal turning gait” will be sometimes abbreviated as a “normal gait”).

The normal turning gait for one period comprises a first turning gaitand a second turning gait. The first turning gait corresponds to a gaitfor the foot 22 of the supporting leg in the current time gait'ssupporting leg coordinate system to move to a position/posture in thenext but one time gait's supporting leg coordinate system, and thesecond turning gait corresponds to a gait for the foot 22 of thesupporting leg in the next time gait's supporting leg coordinate systemto move a position/posture in a next but two time gait'supporting legcoordination system. The next but two time gait's supporting legcoordinate system is associated with the desired landingposition/posture of the foot 22 of the free leg in the second turninggait. The next but two time gait's supporting leg coordinate system isset in such a manner that the position/posture (that is, position andorientation) of the next but two time gait's supporting leg coordinatesystem seen from the next but one time gait's supporting leg coordinatesystem (the supporting leg coordinate system for the second turninggait) agrees with the position/posture (that is, position andorientation) of the next time gait's supporting leg coordinate systemseen from the current time gait's supporting leg coordinate system (thatis, the landing position/posture of the foot 22 of the free leg in thecurrent time gait). The word “turning” in the term “normal turning gait”is used because “turning” can include “straight advance” in a broadsense since a turning ratio of 0 means straight advance.

The normal turning gait is a virtual cyclic gait provisionally createdin the gait generator 200 for determining a divergence component of thecurrent time gait and the body's vertical position/velocity at the endof the current time gait and is not output directly from the gaitgenerator 200 for actually controlling the robot 1.

Here, the word “divergence” means that the position of the body isdisplaced far from the positions of the foot portions (that is, thefeet). The value of the divergence component is a numerical value thatrepresents the degree of displacement of the position of the body of thetwo-legged movable robot from the positions of the foot portions (feet)(strictly, from the origin of the supporting leg coordinate system seton the contact surface of the supporting leg) and is represented as afunction of the horizontal position and velocity of the body 3.

In this embodiment, the current time gait is generated in such a mannerthat the normal gait following the current time gait to be generated isset in accordance with the movement requests (that is, the requiredvalues of landing position/posture and landing time of the foot 22 ofthe free leg for the next two steps and the like), the initialdivergence component of the normal gait is determined, and then, thefinal divergence component of the current time gait is made to agreewith the initial divergence component of the normal gait. The processingof step S024 is described in detail in PCT Patent PublicationWO/02/40224 or PCT application PCT/JP02/13596 previously proposed by theapplicants, and therefore, further description thereof will be omitted.

After the processings from steps S010 to S024 are conducted, the processproceeds to step S026, where initial states of the normal turning gait(that is, the initial body position/velocity horizontal component, theinitial body vertical position/velocity, the initial divergencecomponent, and the initial body posture angle and angular velocity) aredetermined. The processing of step S026 is described in PCT PatentPublication WO/02/40224 or PCT application PCT/JP02/13596, andtherefore, further description thereof will be omitted.

Then, the process proceeds to step S028, where the gait parameters forthe current time gait are determined (some of them are provisionallydetermined). In this case, as with the gait parameters for the normalturning gait, the gait parameters for the current time gait to bedetermined primarily include a foot trajectory parameter, a referencebody posture trajectory parameter, an arm posture trajectory parameter,a desired ZMP trajectory parameter and a desired floor reaction force'svertical component trajectory parameter, and the gait parameters for thecurrent time gait are determined in such a manner that the trajectoriesdefined by the above parameters are seamlessly connected to therespective trajectories in the normal turning gait. However, of theseparameters, the desired ZMP trajectory parameter is a provisional one.The processing of step S028 is described in PCT Patent PublicationWO/02/40224, PCT application PCT/JP02/13596 or the like, and therefore,further description thereof will be omitted.

Then, the process proceeds to step S030, where the gait parameters forthe current time gait are corrected to make the final divergencecomponent of the current time gait agree with the initial divergencecomponent of the normal gait. The gait parameter corrected in this stepis the desired ZMP trajectory parameter.

After the current time gait parameter is corrected in step S030, or ifthe result of the determination in step S018 is NO, the process proceedsto step S032, where a current time gait's instantaneous value isdetermined. This processing is described in detail in PCT PatentPublication WO/02/40224, PCT application PCT/JP02/13596 or the like, andtherefore, further description thereof will be omitted.

Then, the process proceeds to step S034, where an arm movement thatcancels the spinning force is determined in the same manner as theprocessing of step S032 in the embodiment described in PCT applicationPCT/JP02/13596.

Then, the process proceeds to step S036, where the gait generation timet is incremented by Δt. Then, the process returns to step S014, and thegait generation continues as described above.

Described above are the desired gait generation process conducted by thegait generator 200 and the self position/posture estimating processconducted by the self position/posture estimator 214.

The control operation by the control unit 60 according to thisembodiment will be further described with reference to FIG. 6. The gaitgenerator 200 generates the desired gait as described above. The desiredbody position/posture (trajectory) and the desired arm posturetrajectory of the generated desired gait are directly transmitted to arobot geometric model (inverse kinematics calculation part) 202.

Besides, the desired foot position/posture (trajectory), the desired ZMPtrajectory (that is, the desired total floor reaction force centralpoint trajectory) and the desired total floor reaction force(trajectory) (that is, the desired floor reaction force's horizontalcomponent and the desired floor reaction force's vertical component) aredirectly transmitted to a composite-compliance operation determinator204 and to a desired floor reaction force distributor 206. The desiredfloor reaction force distributor 206 distributes the desired total floorreaction force among the feet 22R and 22L and determines the desiredeach foot floor reaction force central points and the desired each footfloor reaction forces for the feet. The desired each foot floor reactionforce central points and the desired each foot floor reaction forcesthus determined are transmitted to the composite-compliance operationdeterminator 204.

The composite-compliance operation determinator 204 generates acorrected desired foot position/posture trajectory with deformationcompensation and transmits the same to the robot geometric model 202.Upon receiving the desired body position/posture (trajectory) and thecorrected desired foot position/posture (trajectory) with deformationcompensation, the robot geometric model 202 calculates jointdisplacement commands (values) for the twelve joints (such as 10R(L)) ofthe legs 2, 2 and transmits the commands to a displacement controller208. The displacement controller 208 controls the twelve joints of therobot 1 by following the joint displacement commands (values) calculatedby the robot geometric model 202 as desired values.

The floor reaction force (specifically, an actual each foot floorreaction force) applied to the robot 1 is detected by the six-axis forcesensor 50. The detection value is transmitted to thecomposite-compliance operation determinator 204. In addition,inclination components of the difference between the estimated bodyposture determined in step S016 in FIG. 9 as described later and thedesired body posture generated by the gait generator 200, that is,actual body posture errors θerrx and θerry are transmitted to a posturestabilization control calculation unit 212. Here, θerrx is aninclination component in the roll direction (about the X axis), andθerry is an inclination component in the pitch direction (about Y axis).The posture stabilization control calculation unit 212 calculates thecompensation total floor reaction force moment about the desired totalfloor reaction force central point Mdmd (desired ZMP) for restoring thebody posture inclination of the robot 1 to the body posture inclinationin the desired gait and transmits the compensation total floor reactionforce moment Mdmd to the composite-compliance operation determinator204. Based on the input value, the composite-compliance operationdeterminator 204 corrects the desired foot position/posture.Specifically, the composite-compliance operation determinator 204determines the corrected desired foot position/posture (trajectory) withdeformation compensation by correcting the desired foot position/posturetransmitted from the gait generator 200 in such a manner that the actualtotal floor reaction force (that is, the resultant force of all theactual foot floor reaction forces including the translation forces andthe moments) agrees with the resultant force of the desired total floorreaction force, which is a resultant force of the desired each footfloor reaction forces, and the compensation total floor reaction forcemoment Mdmd. However, it is actually impossible that all the statesagree with their respective desired values, and therefore, varioustrade-offs are made among these states to make each of them agree withits desired value as closely as possible. That is, a control deviationfor each of the desired values of the foot position/posture and thefloor reaction force is weighted, and the weighted averages of thecontrol deviations (or the squares of the control deviations) arecontrolled to be minimum.

Specifically, the corrected desired foot position/posture (trajectory)with deformation compensation is a desired foot position/posture(trajectory) that is corrected so as to achieve a deformation of adeformable mechanism (a cylindrical rubber, a sole sponge, or a bag-likeair damper for impact absorption) of the foot which is required toachieve the desired floor reaction force value corrected by thecomposite-compliance operation determinator 204 which is determinedusing a dynamics model thereof (for example, a spring damper model).

In the following, a self position/posture estimating process in stepS016 according to a first embodiment will be described in detail withreference to the flowchart thereof shown in FIG. 10. The selfposition/posture estimating process according to the first embodimentdescribed below is a process concerning walking of the robot 1.

First, in step S2000, a detection value of the gyro sensor in theinclination sensor 54 of the body 3, that is, a detection value ofangular velocity (or angular velocities in the three axis direction) ofthe body 3 is integrated by an integrator to determine an estimated bodyposture. The estimated body posture is described in the globalcoordinate system. Of the estimated body posture, the inclinationcomponent is drift-corrected with respect to the gravity directiondetected by the accelerometer in the inclination sensor 54 in order toreduce an accumulation of errors of integration of the detection valueof the gyro sensor (that is, a drift thereof). Specifically, thiscorrection is conducted by determining the difference between therelative angle of the body 3 with respect to the gravity directiondetermined from the detection value of the accelerometer and theinclination of the estimated body posture and additionally inputting, tothe integrator that integrates the detection value of the gyro sensor, avalue derived from the difference in accordance with a feedback controllaw, such as the PI control law, to make the difference converge to 0.This correction method is well-known, and therefore, further descriptionthereof will be omitted.

Then, the process proceeds to step S2002, where it is determined whetherlanding of the robot 1 is ensured or not. This determination may be madewith reference to a certain point in time in the desired gait, such asbased on criteria described below, or alternatively, may be made basedon the detection value of the six-axis force sensor 50 (floor reactionforce sensor) or the accelerometer. Alternatively, the determination maybe made by comprehensively taking such detection values and such acertain point in time in the desired gait into consideration.

(a) Whether a predetermined time has elapsed from the start of theone-leg supporting period or not.

(b) Whether a predetermined time has elapsed since the detection valueof the six-axis force sensor (floor reaction force sensor) 50 reached apredetermined value or not.

(c) Whether a predetermined time has elapsed since the detection valueof the accelerometer reached a predetermined value or not.

However, in order to avoid slipping or taking-off of the foot 22 havinglanded on the floor immediately after the result of the determination instep S2002 is found YES as reliably as possible, it is preferable tochoose a point in time an appropriate time after the instant of landingas the point in time when landing of the foot is ensured. Therefore, thepredetermined times described in the above criteria (a) to (c) arepreferably determined so as to meet this requirement.

If the result of the determination in step S2002 is NO, theself-position estimating process of step S016 is completed, and theprocess proceeds to step S018 in FIG. 9 as described above.

If the result of the determination in step S2002 is YES, the followingprocessings are performed. The process proceeds to step S2004, where thedifference between the estimated body posture seen from the globalcoordinate system and the body posture of the desired gait (that is, thedesired body posture) seen from the global coordinate system iscalculated as a posture rotational deviation's variation. Here, the bodyposture of the desired gait seen from the global coordinate system is abody posture seen from the global coordinate system for the case whereit is assumed that the robot 1 moves with the desired gait without anyposture inclination or spin of the body 3 (that is, any deviation fromthe desired body posture) during one step in a current estimatedsupporting leg coordinate system. The estimated supporting legcoordinate system is a supporting leg coordinate system associated withthe estimated position/posture of the foot 22 of the supporting leg ofthe actual robot 1. That is, the estimated supporting leg coordinatesystem is a coordinate system established in accordance with thedefinition of the supporting leg coordinate system described above. Morespecifically, the estimated supporting leg coordinate system is acoordinate system that has: an origin located at an intersection of thecontact surface and a perpendicular line drawn from the center of theankle of the supporting leg of the actual robot 1, whose foot 22 hasbeen rotated from the estimated position/posture to the horizontalposture without any slipping with respect to the contact surface; an Xaxis corresponding to the horizontal axis extending from the origin tothe toe of the foot 22 of the supporting leg; a Z axis corresponding tothe vertical axis; and a Y axis corresponding to a coordinate axisperpendicular to the X and Z. In the first embodiment, the estimatedsupporting leg coordinate system is updated only when landing of a footis ensured as described later, and therefore, is a supporting legcoordinate system associated with the estimated position/posture of thefoot 22 of the supporting leg of the actual robot at the time oflanding. Consequently, in the first embodiment, the position/posture ofthe estimated supporting leg coordinate system is estimated as anestimation value of the self-position of the robot 1.

In the above description, the difference between the estimated bodyposture at the time when landing is ensured and the body posture of thedesired gait is calculated as the posture rotational deviation'svariation in step S2004. Strictly, however, it is preferable that thedifference between the variation of the estimated body posture and thevariation of the body posture of the desired gait for a period of onestep is calculated as the posture rotational deviation's variation.However, in the first embodiment, since the algorithm described later isperformed, the estimated body posture agrees with the body posture ofthe desired gait by itself at the start of one step. Therefore, thedifference between the estimated body posture and the body posture ofthe desired gait equals to the difference between the variation of theestimated body posture and the variation of the body posture of thedesired gait for a period of one step, and thus, either of them may beused.

Then, the process proceeds to step S2006, where a posture rotationcenter is determined. Specifically, for example, of the desired ZMPs ofthe last time gait, the desired ZMP at the time when the foot 22 of therear supporting leg in the last time gait is in contact with the floorat the toe is determined as the posture rotation center.

Then, the process proceeds to step S2008, where the position/posture ofthe current estimated supporting leg coordinate system (specifically,the estimated supporting leg coordinate system determined when landingof the foot 22 of the supporting leg of the last time gait is ensured,that is, the estimated supporting leg coordinate system before slippingshown in FIG. 11 occurs) is rotated by the posture rotationaldeviation's variation about the posture rotation center determined instep S2006, and the resulting coordinate system is determined as a newcurrent estimated supporting leg coordinate system (the estimatedsupporting leg coordinate system after slipping shown in FIG. 11occurs).

The origin and the directions of the coordinate axes of the estimatedsupporting leg coordinate system are represented in the globalcoordinate system.

In addition, it is assumed that initial values for the estimatedsupporting leg coordinate system (that is, initial position/posture inthe global coordinate system) have been set during the initialization instep S010.

Then, the process proceeds to step S2010, where a next time gait'sestimated supporting leg coordinate system (that is, a next time gait'sestimated supporting leg coordinate system shown in FIG. 11) isdetermined in such a manner that the relative position/posturerelationship of the next time gait's estimated supporting leg coordinatesystem with respect to the current estimated supporting leg coordinatesystem is the same as the relative position/posture relationship of thenext time gait's supporting leg coordinate system with respect to thesupporting leg coordinate system of the desired gait (last time gait).Here, the “next time gait's supporting leg coordinate system” referredto herein means the supporting leg coordinate system of the gaitfollowing the last time gait (that is, the current time gait), ratherthan the next time gait's supporting leg coordinate system of thecurrent time gait that is to be generated.

Then, the process proceeds to step S2012, where the position/posture ofthe next time gait's estimated supporting leg coordinate systemdetermined in step S2010 (including the position of the origin and thedirections of the coordinate axes) is substituted for theposition/posture of the current estimated supporting leg coordinatesystem. Thus, the self-position estimating process in step S016 iscompleted, and then, the process proceeds to step S018, as describedabove.

Described above is the self-position estimating process in step S016according to the first embodiment.

The rotation center of the estimated supporting leg coordinate systemcorresponds with the rotation center of the rotational slipping of thefoot 22 of the supporting leg during normal walking, which involves nofloating period. During the floating period occurring in one step inrunning or the like, during which the supporting leg also floats overthe floor, the foot 22 of the supporting leg does not slip in a narrowsense, and therefore, the posture rotation (or spin) in the air ispreferably represented as a rotation about the rotation center of theestimated supporting leg coordinate system. However, in a broader sense,the “slipping of the foot of the supporting leg” may be defined as aposture rotation about the rotation center of the estimated supportingleg coordinate system.

More specifically, the supporting leg coordinate system just has to beset with respect to the contact surface of the foot 22 of the supportingleg, and the origin thereof does not have to be the point where theperpendicular line drawn from the center of the ankle of the supportingleg intersects with the contact surface as described above. That is, thesupporting leg coordinate system is a local coordinate system that isset on a virtual floor in the vicinity of the foot 22 of the supportingleg for describing the movement of the robot. After all, the posturerotation (or spin) of the robot 1 is considered as a phenomenon in whichthe virtual floor including the robot 1 rotates (or spins) about apredetermined point in the global coordinate system while the robot 1 iskept moving without any posture rotation (or spin) with respect to thevirtual floor.

In other words, the movement of the robot 1 can be considered as arotational perturbation of a local coordinate system including the wholerobot 1 moving following the desired gait or joint displacementdetection values in the local coordinate system about a predeterminedpoint (posture rotation center) with respect to the global coordinatesystem.

Therefore, the posture rotation center corresponds with the rotationcenter of the estimated supporting leg coordinate system, as well as therotation center of the rotational perturbation.

In step S2008 in the first embodiment, if the current estimatedsupporting leg coordinate system is rotated by the posture rotationaldeviation's variation including the difference of inclination componentof the posture of the body 3, the Z axis of the current estimatedsupporting leg coordinate system typically deviates from the verticaldirection.

According to this embodiment, the current estimated supporting legcoordinate system is updated only at the time of landing, and therefore,the current estimated supporting leg coordinate system is kept inclineddepending on the body posture at the instant of landing, which is notpreferable. The current estimated supporting coordinate system should bedetermined so as to have the Z axis aligned with the vertical direction.Thus, according to the first embodiment, in step S2008, after thecurrent estimated supporting leg coordinate system is rotated, thedirection of the Z axis of the rotated current estimated supporting legcoordinate system is restored to the vertical direction. Specifically,the direction of the Z axis of the rotated current estimated supportingleg coordinate system is restored to the vertical direction by rotatingthe rotated current estimated supporting leg coordinate system about theorigin of the estimated supporting leg coordinate system by theinclination angle of the Z axis with respect to the vertical direction.Alternatively, in step S2008, the current estimated supporting legcoordinate system may be rotated by the component about the verticalaxis (that is, the spin component) of the posture rotational deviation'svariation, rather than by the posture rotational deviation's variation.Alternatively, the direction of the Z axis of the next time gait'sestimated supporting leg coordinate system may be restored to thevertical direction in step S2010.

Also in the following, as for the second embodiment, the currentestimated supporting leg coordinate system is preferably determined soas to the Z axis aligned with the vertical direction. As for the thirdand the following embodiments, a similar strategy may be used if theself position deviation due to spinning has to be primarily handled.

As described above, in the first embodiment, assuming that the actualbehavior of the robot 1 is a rotation of the robot 1 and the estimatedsupporting leg coordinate system, the estimated supporting legcoordinate system being a local coordinate system that describes themovement of the robot 1, and the robot 1 moving following the desiredgait in the estimated supporting leg coordinate system, about apredetermined posture rotation center determined by the posture rotationcenter determining means (in the processing in step S2006) by theposture rotational deviation's variation, which is a variation, duringone step, of the difference between the posture of the body 3 detectedby the posture detecting means (in the processing in step S2000) (thatis, the estimated value of the actual posture) and the desired postureof the body 3 (or the component, about the vertical axis, of the posturerotational deviation's variation), the position/posture of the newestimated supporting leg coordinate system depending on theposition/posture of the foot 22 of the free leg at the time of landing,that is, the position and orientation of the landing point of the foot22, or in other words, the foot print is estimated for every step (forevery landing).

The first embodiment described above is associated with the first tofifth, seventh and eighth implementations of the present invention.

Now, a second embodiment of the present invention will be described withreference to FIGS. 12 and 13. The second embodiment differs from thefirst embodiment only in the self position/posture estimating process instep S016 described above with reference to FIG. 9, and the otherarrangements and the processings performed by the control unit 60 arethe same as those according to the first embodiment.

FIG. 12 is a flowchart showing a self position/posture estimatingprocess according to the second embodiment. The self position estimatingprocess according to the second embodiment described below is a processconcerning walking of the robot 1.

First, in step S2100, as in the first embodiment, a detection value ofthe gyro sensor in the inclination sensor 54 of the body 3 (a detectionvalue of angular velocity) is integrated by an integrator to determinean estimated body posture. Then, the process proceeds to step S2102,where it is determined whether landing of the robot 1 is ensured or not,as in the first embodiment.

If the result of the determination in step S2102 is NO, theself-position estimating process of step S016 shown in FIG. 9 iscompleted, and the process proceeds to step S018 as described above.

If the result of the determination in step S2102 is YES, the followingprocessings are performed. The process proceeds to step S2104, where thedifference between the estimated body posture seen from the globalcoordinate system and the body posture of the desired gait seen from theglobal coordinate system is calculated as a posture rotationaldeviation's variation, as in the first embodiment.

Then, the process proceeds to step S2106, where a posture rotationcenter is determined, as in the first embodiment.

Then, the process proceeds to step S2108, where the position/posture ofthe current estimated supporting leg coordinate system is rotated aboutthe posture rotation center by the posture rotational deviation'svariation, and the resulting coordinate system is determined as a newcurrent estimated supporting leg coordinate system, as in the firstembodiment. FIG. 13 illustrates the current estimated supporting legcoordinate system before being rotated and the current estimatedsupporting leg coordinate system after being rotated.

Then, the process proceeds to step S2110, where the actualposition/posture of the foot of the free leg (in the example shown inFIG. 13, the position/posture of the foot 22 located toward the front ofrobot 1) at the time of landing in the current estimated supporting legcoordinate system is estimated through kinematics calculations based onat least the joint displacement detection values. In the following, theestimated actual position/posture of the foot of the free leg at thetime of landing will be referred to as an estimated free leg's footposition/posture at the time of landing.

However, this is on the assumption that, on the current estimatedsupporting leg coordinate system, the robot 1 moves following the jointdisplacement detection values while keeping the body posture accordingto the desired gait without any slipping of the foot 22 of thesupporting leg with respect to the virtual floor in the currentestimates supporting leg coordinate system.

Specifically, the reason why it is assumed that the robot 1 keeps thebody posture according to the desired gait on the current estimatedsupporting leg coordinate system which has been rotated about theposture rotation center by the posture rotational deviation's variationis because the body posture on the assumption agrees with the estimatedbody posture in the global coordinate system at that instant. Therefore,is the current estimated supporting leg coordinate system is rotated bythe component about the vertical axis (that is, the spin component) ofthe posture rotational deviation's variation rather than by thedifference described above, it is assumed that, on the current estimatedsupporting leg coordinate system, the robot 1 moves following the jointdisplacement detection values while keeping the body direction accordingto the desired gait and the body inclination corresponding with theinclination component of the posture rotational deviation's variationwithout any slipping of the foot 22 of the supporting leg with respectto the virtual floor in the current estimates supporting leg coordinatesystem.

Alternatively, based on at least any of the floor reaction forcedetection value obtained by the six-axis force sensor 50 and the floorreaction force of the desired gait, the deformation of the deformablemechanism (the elastic member 106, the floor contact member (foot soleelastic member) 71, the bag member 109 or the like shown in FIGS. 3 and4) of the foot 22 is determined using a dynamics model for thedeformable mechanism (for example, a spring damper model), and theestimated free leg's foot position/posture at the time of landing may bedetermined taking the deformation into consideration. More specifically,as shown in FIG. 13, the whole attitude of the robot 1 in the currentestimated supporting leg coordinate system for the case where it isassumed that the body posture is the desired body posture, the jointdisplacements are the joint displacement detection values (that is, thej-th Joint displacement detection values θj, j=1, 2, . . . ) and thedeformation of the deformable mechanism is the deformation estimatedbased on the floor reaction force detection value (that is, the wholeattitude of the robot 1 at that instant) is determined, the free leg'sfoot position/posture with respect to the supporting leg (the leg 2located toward the back of the robot 1 in FIG. 13) in the whole attitudeis determined, and the free leg's foot position/posture may beconsidered as the estimated free leg's foot position/posture at the timeof landing. Alternatively, a load on a decelerator or link may beestimated using a disturbance observer based on a motor currentinstruction or detection value, and the deformation of the deceleratoror link may be estimated based on the estimated load, and the estimatedfree leg's foot position/posture at the time of landing may bedetermined by taking the deformation of the decelerator or link intoconsideration.

Alternatively, the estimated free leg's foot position/posture at thetime of landing may be determined through a kinematics calculation basedon at least a joint displacement of the desired gait and a compliancecompensation (see Japanese Patent Laid-Open No. 10-277969 previouslyproposed by the applicants).

In this way, the estimated free leg's foot position/posture at the timeof landing can be determined with higher precision.

Then, the process proceeds to step S2112, where the relativeposition/posture of the next time gait's estimated supporting legcoordinate system with respect to the current estimated supporting legcoordinate system is determined based on the estimated free leg's footposition/posture at the time of landing, as shown in FIG. 13. Here, thecorrespondence between the estimated free leg's foot position/posture atthe time of landing, that is, the position/posture of the foot 22 of thesupporting leg of the next time gait and the position/posture of thenext time gait's estimated supporting leg coordinate system agrees withthe correspondence between the foot 22 of the supporting leg and thesupporting leg coordinate system as described above.

Then, the process proceeds to step S2114, where the position/posture ofthe next time gait's estimated supporting leg coordinate system seenfrom the global coordinate system is determined based on the relativeposition/posture of the next time gait's estimated supporting legcoordinate system with respect to the current estimated supporting legcoordinate system after being rotated and the position/posture of thecurrent estimated supporting leg coordinate system after being rotatedseen from the global coordinate system, as shown in FIG. 13.

Then, the process proceeds to step S2116, where the position/posture ofthe next time gait's estimated supporting leg coordinate system thusdetermined is substituted for the position/posture of the currentestimated supporting leg coordinate system. In this way, theself-position estimating process in step S016 in FIG. 9 is completed,and then, the process proceeds to step S018, as described above.

As described above, in the second embodiment, assuming that the actualbehavior of the robot 1 is a rotation of the robot 1 and the estimatedsupporting leg coordinate system, the estimated supporting legcoordinate system being a local coordinate system that describes themovement of the robot 1 and the robot 1 moving following at least thejoint displacement detection values while keeping the body postureaccording to the desired gait in the estimated supporting leg coordinatesystem, about the predetermined posture rotation center determined bythe posture rotation center determining means (in the processing in stepS2106) by the posture rotational deviation's variation, which is avariation, during one step, of the difference between the posture of thebody 3 detected by the posture detecting means (in the processing instep S2100) (that is, the estimated value of the actual posture) and thedesired posture of the body 3, the position/posture of the new estimatedsupporting leg coordinate system depending on the position/posture ofthe free leg at the time of landing, that is, the position andorientation of the landing point of the foot 22, or in other words, thefoot print is estimated for every step (for every landing).

The second embodiment described above is associated with the first tofifth, and seventh to ninth implementations of the present invention.

Now, a third embodiment of the present invention will be described withreference to FIGS. 14 and 15. The third embodiment differs from thefirst embodiment only in the self position/posture estimating processingin step S016 described above with reference to FIG. 9, and the otherarrangements and the processings performed by the control unit 60 arethe same as those according to the first embodiment.

FIG. 14 is a flowchart showing a self-position estimating process instep S016 in FIG. 9 according to the third embodiment.

In the third embodiment, unlike the first and second embodiments, foreach control cycle, the posture rotation (or spin) of the estimatedsupporting leg coordinate system is estimated, so that the estimatedsupporting leg coordinate system is updated. In addition, the bodyposture is estimated at instants during each control cycle, and the bodyposition (strictly, the position of the representative point of thebody) is estimated at instants during each control cycle.

Specifically, first, in step S2200, an estimated body posture isdetermined, as in the first embodiment.

Then, the process proceeds to step S2202, where the difference betweenthe variation of the estimated body posture seen from the globalcoordinate system in the control cycle and the variation of the bodyposture of the desired gait seen from the global coordinate system inthe control cycle is calculated as a posture rotational deviation'svariation. According to the third embodiment, the difference between thevariations in the control cycle is determined as the posture rotationaldeviation's variation, while the difference between the variation of theestimated body posture and the variation of the body posture of thedesired gait for one step is determined as the posture rotationaldeviation's variation in the first and second embodiments.

Then, the process proceeds to step S2204, where a posture rotationcenter is determined, as in the first embodiment. Specifically, thedesired ZMP at that instant (that is, the current value of the desiredZMP) is determined as the posture rotation center.

Then, the process proceeds to step S2206, where the position/posture ofthe current estimated supporting leg coordinate system (that is, theestimated supporting leg coordinate system determined during the lastcontrol cycle, at the time of t-Δt shown in FIG. 15) is rotated by theposture rotational deviation's variation about the posture rotationcenter, and the resulting coordinate system is determined as a newcurrent estimated supporting leg coordinate system (that is, theestimated supporting leg coordinate system at the time of t shown inFIG. 15). The rotation is achieved in the same manner as in the firstembodiment.

Then, the process proceeds to step S2208, where it is determined whetherit is the time of landing or not, that is, whether a gait transition isdetected or not.

If the result of the determination in step S2208 is YES, the followingprocessings are performed. Then, the process proceeds to step S2210,where a next time gait's estimated supporting leg coordinate system isdetermined in such a manner that the relative position/posturerelationship of the next time gait's estimated supporting leg coordinatesystem with respect to the current estimated supporting leg coordinatesystem is the same as the relative position/posture relationship of thenext time gait's supporting leg coordinate system with respect to thesupporting leg coordinate system of the desired gait (last time gait),as in the first embodiment.

Then, the process proceeds to step S2212, where the position/posture ofthe next time gait's estimated supporting leg coordinate system issubstituted for the position/posture of the current estimated supportingleg coordinate system, as in the first embodiment.

After the processing in step S2212 is performed, or if the result of thedetermination in step S2208 is NO, the process proceeds to step S2214,where the estimated body position is determined depending on theposition/posture of the current estimated supporting leg coordinatesystem. However, the relation of the estimated body position with thecurrent estimated supporting leg coordinate system should agree with therelation of the body position with the supporting leg coordinate systemof the desired gait (the desired gait determined during the last controlcycle).

Thus, the self-position estimating process in step S016 is completed,and then, the process proceeds to step S018, as described above.

As described above, in the third embodiment, it is assumed that theactual behavior of the robot is a rotation, at each instant, of therobot 1 and the estimated supporting leg coordinate system, theestimated supporting leg coordinate system being a local coordinatesystem that describes the movement of the robot 1 and the robot 1 movingfollowing the desired gait in the estimated supporting leg coordinatesystem, about the predetermined posture rotation center at that instantdetermined by the posture rotation center determining means (in theprocessing in step S2204) at the posture rotational deviation'svariation, which is the difference between the variation (variationrate) of the body posture detected by the posture detecting means (inthe processing in step S2200) and the variation (variation rate) of thebody posture of the desired gait. Then, on that assumption, theestimated supporting leg coordinate system and the estimated bodyposition are newly determined (updated) at each instant (for eachcontrol cycle), and the position/posture of the new estimated supportingleg coordinate system depending on the position/posture of the free legat the time of landing, that is, the position and orientation of thelanding point of the foot, or in other words, the new foot print isestimated for every step (each time the foot lands on the floor).

This embodiment can be applied not only to the case where the robot 1walks but also to the case where the robot 1 runs. However, when theposture rotation center is determined in step S2204 in the case wherethe robot 1 runs, the desired ZMP at each instant (that is, the currentdesired ZMP) may be used as the posture rotation center during theone-leg supporting period, while the center of gravity of the robot 1 inthe desired gait at each instant (that is, the current desired gait) isdetermined as the posture rotation center during the floating period inwhich both the legs 2, 2 of the robot 1 float in the air.

In addition, when the robot 1 walks, in step S2214, based on at leastthe current estimated supporting leg coordinate system and the jointdisplacement detection values, the relationship of the body positionwith respect to the supporting leg coordinate system may be determinedin the same manner as that in which the estimated free leg's footposition/posture at the time of landing is determined in step S2110, andthe estimated body position may be determined in such a manner that therelationship of the estimated body position with respect to theestimated supporting leg coordinate system agrees with that positionalrelationship. In this case, the relationship among the estimated bodyposition, the estimated supporting leg coordinate system and the jointdisplacement detection values is as shown in FIG. 13.

Alternatively, the relationship of the body position/posture withrespect to the supporting leg coordinate system may be determinedthrough a kinematics calculation based on at least a joint displacementof the desired gait and a compliance compensation (see Japanese PatentLaid-Open No. 10-277969 previously proposed by the applicants), and therelationship of the estimated body position/posture with respect to theestimated supporting leg coordinate system may be made to agree with therelationship thus determined.

In this way, the estimated body position/posture can be determined withhigher precision.

In addition, when the robot 1 walks, step S2210 may be replaced with theprocessings from step S2110 to step S2114 in the second embodiment shownin FIG. 12. In this case, the estimated supporting leg coordinate systemat the time of landing can be determined with higher precision.

Furthermore, step S2210 may be replaced with the processings from stepS2110 to step S2114 in the second embodiment, and the estimated bodyposition/posture may be determined through a kinematics calculationbased on at least the joint displacement detection values in step S2214as described above. In this case, as described with reference to thesecond embodiment, it is preferable that the estimated free leg's footposition/posture at the time of landing is determined based on thedetection value of the floor reaction force taking the deformation ofthe foot 22 into consideration, and the next time gait's supporting legcoordinate system is determined using the estimated free leg's footposition/posture at the time of landing.

In other words, it is assumed that the actual behavior of the robot is arotation, at each instant (in each control cycle), of the robot and theestimated supporting leg coordinate system, the estimated supporting legcoordinate system being a local coordinate system that describes themovement of the robot, and the robot moving following at least the jointdisplacement detection values while keeping the body posture accordingto the desired gait in the estimated supporting leg coordinate system,about the predetermined posture rotation center at that instantdetermined by the posture rotation center determining means (in theprocessing in step S2204) at the posture rotational deviation'svariation, which is the difference between the variation (variation percontrol cycle, that is, the variation rate) of the body posture detectedby the posture detecting means (in the processing in step S2200) and thevariation (the variation per control cycle, that is, the variation rate)of the body posture of the desired gait. Then, on that assumption, theestimated supporting leg coordinate system and the estimated bodyposition may be newly determined (updated) at each instant (for eachcontrol cycle), and the position/posture of the new estimated supportingleg coordinate system depending on the position/posture of the free legat the time of landing, that is, the position and orientation of the newlanding point of the foot, or in other words, the new foot print may beestimated for every step (for every landing).

In this way, the estimated supporting leg coordinate system at the timeof landing can be determined with higher precision, and the estimatedbody position/posture can be prevented from being discontinuous.

The third embodiment described above is associated with the first tosixth, eighth and ninth implementations of the present invention.

Now, a fourth embodiment of the present invention will be described withreference to FIGS. 16 to 19. The fourth embodiment differs from thefirst embodiment only in the self position/posture estimating process instep S016 in FIG. 9, and the other arrangements and the processingsperformed by the control unit 60 are the same as those according to thefirst embodiment.

In the following, the estimated body position determined as describedabove with reference to the third embodiment will be referred to as a“geometrically estimated body position”. The geometrically estimatedbody position is a position seen from the global coordinate system.

On the other hand, the position/posture of the body seen from the globalcoordinate system which is estimated through a well-known inertialnavigation method based on the detection values of the accelerometer andthe gyro sensor will be referred to as an “inertial-navigation-likeestimated body position/posture”. Here, the estimated body posturedetermined in step S2200 in the third embodiment is aninertial-navigation-like estimated body posture.

As described above with reference to the third embodiment, thegeometrically estimated body position is a body position estimatedgeometrically with respect to the floor, and therefore, the estimationprecision tends to decrease for the floating period that occurs duringrunning or the like.

On the other hand, the inertial-navigation-like estimated bodyposition/posture is estimated according to the same principle regardlesswhether the robot walks or runs or regardless of the one-leg supportingperiod, the two-leg supporting period or the floating period. Therefore,it does not suffer a short-term estimation precision reduction for anyof the periods. However, since the estimation involves integration, along-term drift is likely to occur.

Taking such characteristics into consideration, according to the fourthembodiment, the inertial-navigation-like estimated body position/postureis corrected with the geometrically estimated body position.

In addition, a detection drift of the gyro sensor and a drift of theinclination component of the estimated body posture are corrected usingthe movement acceleration of the robot 1 calculated from the movementsof the geometrically estimated body position and the estimated bodyposture and the detection value of the accelerometer. Furthermore,depending on the circumstance, a drift in the yaw direction of thedetection value of the gyro sensor is also corrected.

FIG. 16 is a flowchart showing a self-position estimating process instep S016 in FIG. 9 according to the fourth embodiment, and FIG. 17 is ablock diagram for illustrating the same estimating process.

With reference to FIGS. 16 and 17, the self-position estimating processin step S016 in FIG. 9 according to the fourth embodiment will bedescribed. First, in step S2300 in FIG. 16, the detection value of thegyro sensor is integrated to determine the estimated body posture.However, a drift of the inclination component of the estimated bodyposture is corrected by correcting the detection drift of the gyrosensor using the movement acceleration calculated from the movement ofthe geometrically estimated body position determined in a precedingcontrol cycle (that is, the last or previous control cycle) and thedetection value of the accelerometer.

A processing in step S2300 will be described in detail. First, based onthe movement of the geometrically estimated body position determined instep S2302 described later during the last or previous control cycle,the geometrically estimated body acceleration, which is the second orderdifferential of the geometrically estimated body position, iscalculated. This processing is performed in a block 301 in FIG. 17. Theprocessing of determining the geometrically estimated body position isperformed in a block 300 in FIG. 17. Incidentally, if the representativepoint of the body agrees with the position of the accelerometer, theestimated body posture is not needed to calculate the geometricallyestimated body acceleration (strictly, the acceleration of the positionof the accelerometer in the body 3 estimated geometrically).

Then, the accelerometer's detection value (that is, the detection valueof the body acceleration) is converted using the estimated body postureinto the value in the global coordinate system, thereby determining theaccelerometer's detection value's global-coordinate-system-convertedvalue. This processing is performed in a block 302 in FIG. 17. Forsimplicity of description, it is assumed herein that the position of theaccelerometer agrees with the representative point of the body. If thetwo positions don't agree with each other, the accelerometer's detectionvalue and the gyro-sensor's detection value can be converted into anacceleration and an angular velocity at the representative point of thebody, respectively, through a kinematics calculation, or theacceleration and the angular velocity at the representative point of thebody can be converted into the acceleration at the position of theaccelerometer and the angular velocity at the position of the gyrosensor, respectively, through a kinematics calculation.

Then, as shown in FIGS. 18( a) and 18(b), the geometrically estimatedbody acceleration is subtracted from the accelerometer's detectionvalue's global-coordinate-system-converted value (that is, vectorsubtraction therefor is performed), thereby determining the estimatedgravitational acceleration. The accelerometer's detection value'sglobal-coordinate-system-converted value includes an accelerationcomponent due to gravity applied to the accelerometer, while thegeometrically estimated body acceleration does not include anyacceleration component due to gravity. Therefore, by subtracting thegeometrically estimated body acceleration from the accelerometer'sdetection value's global-coordinate-system-converted value, theestimated gravitational acceleration can be determined. This processingis performed in a block 303 in FIG. 17. Here, FIG. 18( a) shows a casewhere there is no error in the estimated body posture, and FIG. 18( b)shows a case where there is an error in the estimated body posture (inthe following, this error will be referred to as an estimated bodyposture error, or an estimated body posture's angular error).

On the other hand, as shown in FIGS. 18( a) and 18(b), the gravitationalacceleration that is supposed to occur in the vertical direction (thatis, the Z axis direction) of the global coordinate system estimated bythe robot 1 based on the estimated body posture is referred to as asupposed gravitational acceleration.

As described above, the geometrically estimated body acceleration isdescribed in the global coordinate system. Besides, the actual robot 1moves following the desired gait on the assumption that the estimatedbody posture is a correct estimation of the actual body posture. Inother words, the robot moves following the desired gait on the estimatedglobal coordinate system on the assumption that the global coordinatesystem is correctly estimated based on the estimated bodyposition/posture. More strictly, in the self position/posture estimatingprocess by the robot 1, the global coordinate system estimated based onthe estimated body position/posture is assumed to be a correct one, andit is assumed that the actual behavior of the robot 1 is a rotation ofthe robot 1 and the estimated supporting leg coordinate system, theestimated supporting leg coordinate system being a local coordinatesystem set on the global coordinate system assumed to be correct, andthe robot 1 moving following the desired gait in the estimatedsupporting leg coordinate system, about the predetermined posturerotation center at that instant determined by the posture rotationcenter determining means at the posture rotational deviation'svariation, which is the difference between the variation rate of thebody posture obtained (detected or estimated) at each instant by theposture detecting means and the variation rate of the body posture ofthe desired gait.

Therefore, if the estimated body posture is correct, and there is noerror in the accelerometer's detection value, the supposed gravitationalacceleration agrees with the estimated gravitational acceleration asshown in FIG. 18( a).

On the other hand, even when there is no error in the accelerometer'sdetection value, if there is an error in the estimated body posture, thedirection of the supposed gravitational acceleration deviates from thedirection of the estimated gravitational acceleration by the estimatedbody posture's angular error, as shown in FIG. 18( b). That is, thefollowing formula 42 holds.estimated body posture's angular error=angle between supposedgravitational acceleration and estimated gravitationalacceleration  formula 42

As shown in FIGS. 18( a) and 18(b), the difference between the estimatedgravitational acceleration and the supposed gravitational accelerationis referred to as an estimated gravitational acceleration error. Then,from the relationship described above, if there is no error in theaccelerometer's detection value, the estimated gravitationalacceleration error is caused by the error in the estimated body posture,and there is a relationship represented by the following formula 43between the horizontal component of the estimated gravitationalacceleration error seen from the global coordinate system estimated bythe robot 1 based on the estimated body posture (that is, the componentof the estimated gravitational acceleration perpendicular to thesupposed gravitational acceleration) and the estimated body posture'sangular error. However, the formula 43 represents a relationship betweenthe back-and-forth-directional component (X component) of the estimatedgravitational acceleration error and the component of the estimated bodyposture's angular error about the Y axis. To represent a relationshipbetween the sideward-directional component (Y component) of theestimated gravitational acceleration error and the component of theestimated body posture's angular error about the X axis, the minus signin the right side is eliminated. Here, the gravitational acceleration isa positive value.horizontal component of estimated gravitational acceleration error=−tan(estimated body posture's angular error)*gravitationalacceleration  formula 43

According to this embodiment, the estimated body posture is corrected soas to make the estimated body posture error converge to 0 using theestimated body posture's angular error calculated using the formula 42or 43.

Returning to description of step S2300, the estimated body posture'sangular error is calculated from the angle between the supposedgravitational acceleration and the estimated gravitational accelerationat the current instant (strictly, at the instant one control cyclebefore) using the formula 42. Alternatively, the estimated bodyposture's angular error may be calculated from the horizontal componentof the estimated gravitational acceleration error at the current instant(strictly, at the instant one control cycle before) using the formula43. The calculation of the estimated body posture's angular error isperformed in a block 304 in FIG. 17.

Then, the estimated body posture's angular error is converted into avalue in a sensor coordinate system (that is, a coordinate system withthe coordinate axes corresponding with the detection axes of the gyrosensor) in a block 305 in FIG. 17, and then, the converted valuemultiplied with an integral gain Ka is integrated in a block 306,thereby determining the estimated gyro-sensor drift (the estimated valueof a gyro-sensor drift). Furthermore, the estimated gyro-sensor drift issubtracted from a gyro-sensor detection value ω in (that is, a detectionvalue of the body angular velocity) in a block 307, thereby determiningthe angular velocity with the drift corrected. In the block 307,subtraction of a yaw rate drift is also appropriately performed, andthis will be described later. Then, the angular velocity with the driftcorrected is converted into a value in the global coordinate systemusing the estimated body posture in a block 350, thereby determining thebody angular velocity ωgl in the global coordinate system.

Then, the estimated body posture's angular error is multiplied with again Kb in a block 309 in FIG. 17, the resulting value is subtractedfrom the body angular velocity ωgl in the global coordinate system in ablock 308, and the resulting value (that is, the output from the block308) is integrated in a block 310 (an integrator), thereby determining anew estimated body posture θestm.

The estimated body posture θestm, the angular velocity and the like arerepresented by a quaternion, a rotation matrix, an Euler angle or thelike.

In the case where the gyro-sensor drift is estimated (that is, theestimated gyro-sensor drift is determined) in the manner describedabove, in order to achieve the estimation adequately, it is an essentialcondition that the components of the value (vector) in the sensorcoordinate system which is converted from the estimated body posture'sangular error (that is, the estimated body posture's angular errorsabout the respective sensor detection axes, or in other words, thesensor's local estimated body posture's angular errors) are affectedonly by the drift of the relevant gyro sensor and are not or littleaffected by the drifts of the other gyro sensors.

In other words, it is an essential condition that the error of theestimated body posture's angular error about the X(Y) axis is affectedby the drift of the X(Y)-axis gyro sensor but not affected by the driftof the Y(X)-axis gyro sensor.

If the body is rotated 90 degrees about the Z axis of the sensorcoordinate system immediately after the component of the estimated bodyposture's angular error about the X axis occurs by the effect of thedrift of the X-axis gyro sensor, the estimated body posture's angularerror remains accumulated in the global coordinate system, and, thus,the sensor's local component of the estimated body posture's angularerror about the X axis becomes the sensor's local component of theestimated body posture's angular error about the Y axis. Therefore, inorder to meet the essential condition, it is necessary that the absolutevalue of the rotational velocity about the Z axis of the sensorcoordinate system is adequately small.

Thus, if the absolute value of the Z-axis (body's-vertical-axis) gyrosensor's detection value is large, it is desirable that the integralgain Ka is reduced or brought to 0 (that is, the drift correction forthe gyro sensor is not performed).

Furthermore, in general, when the robot 1 moves or works, thelongitudinal axis (trunk axis) of the body 3 is vertical or nearlyvertical, and therefore, the body angular velocity ωglz in the globalcoordinate system, which is a value in the global coordinate systemconverted from the detection value of the angular velocity of the gyrosensor, is close to the detection value of the angular velocity of theZ-axis gyro sensor.

Thus, as shown in FIG. 19, if the absolute value of the component ωglzof the angular velocity about the vertical axis in the global coordinatesystem, which is a value in the global coordinate system converted fromthe detection value of the angular velocity of the gyro sensor, islarge, the integral gain Ka may be reduced or brought to 0 (that is, thedrift correction for the gyro sensor may not be performed).

In addition, if the absolute value of the component of the rotationvelocity of the body 3 in the desired gait about the vertical axis orthe longitudinal axis of the body 3, rather than the absolute value ofthe detection value of the angular velocity of the gyro sensor, islarge, the integral gain Ka may be reduced or brought to 0 (that is, thedrift correction for the gyro sensor may not be performed).

In summary, if the absolute value of the component of the body'srotation velocity about the vertical axis or the longitudinal axis ofthe body 3 which is determined based on at least any of the detectionvalue of the angular velocity of the gyro sensor and the desired gait islarge, that can be addressed by reducing the integral gain Ka orbringing the same to 0 (that is, omitting the drift correction for thegyro sensor).

Furthermore, if the absolute value of the value resulting fromsubtraction of the supposed gravitational acceleration from theaccelerometer's detection value's global-coordinate-system-convertedvalue, or the absolute value of the geometrically estimated bodyacceleration is large, the error of the estimated gravitationalacceleration tends to increase due to a detection error of the sensor orinsufficient rigidity of the main body of the robot 1. Thus, it ispreferable that the gain Ka is reduced or brought to 0.

In addition, as described above, the actual robot 1 moves following thedesired gait on the estimated global coordinate system on the assumptionthat the global coordinate system is correctly estimated based on theestimated body position/posture. Therefore, when the supporting leg isin contact with the floor, even if there is a significant error in theestimated body posture, the actual body acceleration is not affected bythe actual gravitational acceleration and substantially agrees with thegeometrically estimated body acceleration on the estimated globalcoordinate system. On the other hand, during the floating period, theactual body acceleration increases with the actual gravitationalacceleration, and therefore, the direction thereof deviates from thedirection of the geometrically estimated body acceleration on theestimated global coordinate system, and thus, the relationship shown inFIG. 18( b) does not hold. Thus, during the floating period, theprecision of the geometrically estimated body position tends to belowered, compared with the precision of the body position determined bythe inertial navigation method using a relatively precise accelerometerand relatively precise gyro sensor. Therefore, also during the floatingperiod, the gain Ka is preferably reduced or brought to 0.

Besides, in the case where the body position is estimated taking adeformation of the foot 22 into consideration as described above, evenin a period other than the floating period, a significant error islikely to occur in the estimation of the deformation of the part nearthe sole of the foot if the foot 22 at the end of the leg is not inadequate contact with the floor, and therefore, the precision of thegeometrically estimated body acceleration decreases. Therefore, also inthe case where the contact surface between the foot 22 of the supportingleg and the floor is small, the gain Ka is preferably reduced or broughtto 0.

Specifically, a “state where the foot 22 of the leg 2 is in adequatecontact with the floor” refers to a state where at least any one of theconditions described below is satisfied or where some of the conditionsare satisfied simultaneously:

-   (a) a condition where the contact surface between the bottom surface    of the foot 22 and the floor is large, for example, a condition    where the foot 22 is in intimate contact with the floor (that is, a    flat contact condition);-   (b) a condition where the distribution of the pressure of the floor    reaction force is relatively uniform;-   (c) a condition where the foot is in contact with the floor at many    contact points;-   (d) a condition where the desired ZMP (or the actual floor reaction    force's central point) is located at or close to the center of the    foot 22;-   (e) a condition where the contact pressure or the floor reaction    force is high; and-   (f) a condition where the variation rate of the position/posture of    the foot 22 is small, or more strictly, a condition where the    variation of the relative position/posture relationship between the    bottom surface of the foot 22 and the floor is small.

Determination of whether the conditions described above are satisfied ornot can be achieved based on the period (phase) in the desired gait, thedesired ZMP, or the detection value of the floor reaction force, forexample. Alternatively, determination of whether the conditions aresatisfied or not may be achieved based on detection values of a pressuredistribution sensor or a contact sensor, although they are not providedin this embodiment.

To summarize the gain determination method described above, when theabsolute value of the component of the body's rotation velocity aboutthe vertical axis or the longitudinal axis of the body 3 which isdetermined based on at least any of the detection value of the angularvelocity of the gyro sensor and the desired gait is large, when theabsolute value of the value resulting from subtraction of the supposedgravitational acceleration from the accelerometer's detection value'sglobal-coordinate-system-converted value, or the absolute value of thegeometrically estimated body acceleration, is large, when it is in thefloating period, or when the end portion (foot) of the leg is not inadequate contact with the floor, it is preferable that the gain Ka isreduced or brought to 0.

That is, it is preferable that the integral gain Ka is determined bycomprehensively taking such conditions into consideration.

Alternatively, the integral gain Ka may be determined based on aninstantaneous value or a long-term tendency of such conditions.

For the same reason, the integral gain Kb is preferably determined inthe same manner as the integral gain Ka.

In step S2300 according to this embodiment, in addition to theprocessings described above, yaw rate correction (drift correction inthe yaw direction) is also conducted, depending on the circumstance.

First, it is determined whether to perform the yaw rate correction ornot in a block 311 in FIG. 17.

Specifically, at least one of the conditions described below is selectedas a determination condition, it is determined to perform the yaw ratecorrection if the conditions is satisfied:

-   (a) a condition where the absolute value of the detected floor    reaction force's moment about the vertical axis (or the differential    value thereof) is equal to or lower than a predetermined value;-   (b) a condition where the desired movement is a substantially static    one;-   (c) a condition where the foot sole is in adequate contact with the    floor and it is considered that there is no slipping between them;-   (d) a condition where the absolute value of the difference between    the posture angular velocity of the desired gait and the gyro    detection value (posture angular velocity's detection value) is    equal to or lower than a predetermined value;-   (e) a condition where the absolute value of the posture angular    velocity of the desired gait is equal to or lower than a    predetermined value; and-   (f) a condition where the absolute value of the gyro detection value    (posture angular velocity's detection value) is equal to or lower    than a predetermined value.

Primarily, when slipping (rotational slipping) does not or hardly occuron the contact surface between the foot 22 of the supporting leg and thefloor, it is determined to perform the yaw rate correction.

Here, the gyro detection value in the conditions (d) and (f) isdesirably a value obtained by yaw-rate-correcting the gyro-sensor'sdetection value (that is, the detection value of the posture angularvelocity represented by the unprocessed output of the gyro sensor).

If it is determined to perform the yaw rate correction, as shown in FIG.17, in a block 312, the body posture for the case where it is assumedthat no slipping occurs between the foot 22 associated with theestimated supporting leg coordinate system and the floor (hereinafter,referred to as an estimated body posture with out slipping) iscalculated based on at least any of the desired gait, the desired bodyposture, the desired joint displacements and the joint detection valuesand the latest estimated supporting leg coordinate system stored at thetime of landing (hereinafter, referred to as an estimated supporting legcoordinate system at the time of landing). Then, the difference betweenthe estimated body posture and the estimated body posture withoutslipping is determined in a block 313, the difference is converted intoa value in the sensor coordinate system, and the resulting value isinput to a block 315 of a feedback control law, thereby determining theyaw rate drift. For example, the feedback control law of the block 315may be a PID control law, and the yaw rate drift is determined bysumming the time differential value (or a variation of the difference inthe control cycle) of the difference (that is, the output of the block314) multiplied with again Ke, the value of the difference (the outputof the block 314) multiplied with a gain Kf, and the integral value ofthe difference (the output of the block 314) multiplied with a gain Kg.Then, the yaw rate drift thus determined is subtracted from thesensor-detected angular velocity value win in the block 307. If it isdetermined not to perform the yaw rate correction, the input to theblock 315 of the feedback control law is blocked (a switch 316 in FIG.17 is opened), so that the last yaw rate drift value is retained, andthe value is subtracted from the sensor-detected angular velocity valueωin. Alternatively, as in the case of estimating the position/posture ofthe foot of the free leg at the time of landing in step S2110 in FIG.12, the estimated body posture without slipping may be determined bydetermining the deformation of the deformable mechanism (the elasticmember 106, the floor contact member (foot sole elastic member) 71, thebag member 109 or the like shown in FIGS. 3 and 4) of the foot 22 usinga dynamics model for the deformable mechanism (for example, a springdamper model) based on the floor reaction force detection value and/orthe floor reaction force of the desired gait and taking intoconsideration the deformation. Alternatively, a load on a decelerator orlink may be estimated using a disturbance observer based on a motorcurrent instruction or detection value, and the deformation of thedecelerator or link may be estimated based on the estimated load, andthe estimated body posture without slipping may be determined by takingthe deformation of the decelerator or link into consideration.

Alternatively, the estimated free leg's foot position/posture at thetime of landing may be determined through a kinematics calculation basedon at least a joint displacement of the desired gait and a compliancecompensation (see Japanese Patent Laid-Open No. 10-277969 previouslyproposed by the applicants).

In this way, the estimated free leg's foot position/posture at the timeof landing can be determined with higher precision.

Referring back to FIG. 16, once the processing in step S2300 iscompleted as described above, the process proceeds to step S2302, wherethe steps S2202 to S2214 in FIG. 14 according to the third embodimentare performed to determine the position/posture of the estimatedsupporting leg coordinate system and the geometrically estimated bodyposition. As described concerning the third embodiment, the processingof step S2210 in FIG. 14 may be replaced with the processings from stepS2110 to step S2114 in the second embodiment, and the estimated bodyposition/posture may be determined through a kinematics calculationbased on at least the joint displacement detection values in step S2214as described above. In this case, as described with reference to thesecond embodiment, it is preferable that the estimated free leg's footposition/posture at the time of landing is determined based on thedetection value of the floor reaction force taking the deformation ofthe foot 22 into consideration, and the next time gait's supporting legcoordinate system is determined using the estimated free leg's footposition/posture at the time of landing.

Then, the process proceeds to step S2304, where theinertial-navigation-like estimated body position/posture is determinedby the inertial navigation method using the accelerometer and the gyrosensor, and the inertial-navigation-like body position is corrected soas to make the difference between the geometrically estimated bodyposition and the inertial-navigation-like estimated body positionconverge to 0.

Specifically, as shown in FIG. 17, the difference between the last timevalue of the inertial-navigation-like estimated body position Xinertestmand the geometrically estimated body position is determined in a block317, and the sum of the time differential value (or a variation of thedifference in the control cycle) of the difference multiplied with again Kc and the value of the difference multiplied with a gain Kd isdetermined in a block 318. That is, the sum described above isdetermined from the difference described above according to the PDcontrol law, a feedback control law. In addition, the difference betweenthe accelerometer's detection value's global-coordinate-system-convertedvalue, which is output from the block 302, and the supposedgravitational acceleration G is determined in a block 319. Then, the sum(output from the block 318) is subtracted from the difference (outputfrom the block 319) in a block 360, and the resulting value isintegrated two times in a block 320, thereby determining a newinertial-navigation-like estimated body position Xinertestm.

Here, the gains Kc and Kd are preferably small or 0 if a significanterror is likely to occur in the geometrically estimated body position.If the contact surface between the bottom surface of the foot 22 of thesupporting leg and the floor is small, a significant error occurs in thegeometrically estimated body position. Therefore, in the case where thecontact surface between the bottom surface of the foot 22 of thesupporting leg and the floor is small, the gains Kc and Kd arepreferably small or 0. In particular, when the foot 22 is in intimatecontact with the floor (that is, in a flat contact condition), the gainsKc and Kd are preferably large.

Thus, in the case where the robot runs, for example, the correctiongains Ka, Kb, Kc and Kd are preferably set high during the period inwhich the entire foot sole is in contact with the floor and set to 0 orsubstantially 0 during the floating period, as shown in the graph of thecorrection gain K in FIG. 8( c). It is to be noted that the graph of thecorrection gain K in FIG. 8( c) shows only the tendency of variations ofthe gains Ka, Kb, Kc and Kd but does not show the specific valuesthereof. In addition, in FIG. 8( c), the graph is normalized so that themaximum value of the correction gain K is 1. Therefore, the correctiongain K can be considered to mean a reducer (attenuator) for thecorrection gains Ka, Kb, Kc and Kd.

In this embodiment, the estimated body posture is corrected based on theestimated body posture error calculated using the formula 42 or 43.However, the estimated body posture can also be corrected directly basedon the horizontal component of the estimated gravitational accelerationerror without using the formulas 42 and 43. That is, instead of theformula 43, the following formula 44 can be used.horizontal component of estimated gravitational accelerationerror=−estimated body posture angular error*gravitationalacceleration  formula 44

To be more specific about setting of the gain Ka, during the floatingperiod, the whole robot 1 seen from the coordinate system moving in aparabola with the robot 1 can be regarded as being in a state ofweightless regardless of the value of the estimated body posture error,and the output of the accelerometer is not affected by the estimatedbody posture error. Therefore, the estimated gravitational accelerationalways substantially agrees with the supposed gravitational accelerationif the following conditions are satisfied: the accelerometer has a highdetection precision; the actual robot 1 can follow the desired gait witha high accuracy; the robot 1 has a high rigidity; and the parameters ofthe dynamics model for the robot used for generating the desired gaitsubstantially agree with those of the actual robot 1 (hereinafter, theseconditions will be collectively referred to as a condition A). Strictly,the estimated gravitational acceleration and the supposed gravitationalacceleration equally deviate from their respective true values dependingon the estimated body posture error, so that the estimated gravitationalacceleration and the supposed gravitational acceleration alwayssubstantially agree with each other. Thus, essentially, the direction ofgravity cannot be estimated during the floating period. However, sincethe estimated gravitational acceleration and the supposed gravitationalacceleration always substantially agree with each other, the estimatedbody posture error at such an instant is substantially 0. Thus, even ifthe gain Ka is not set to a small value, the correction amount, which isthe product of the estimated body posture error and the gain Ka, is alsosubstantially 0, so that it is unlikely to affect significantly theestimated body posture.

In addition, if the condition A is satisfied, keeping the gain Kaconstant may increase the precision of a low frequency component (DCcomponent) of the estimated body posture. This is because, in thearrangement in which the error is corrected in such a manner that theintegral value of the product of the error and the gain Ka is 0 asdescribed above, if the gain Ka is kept constant, a long-term averagevalue of the horizontal component of the estimated gravitationalacceleration error is theoretically 0, and when the estimated bodyposture error is 0, a long-term average value of the horizontalcomponent of the estimated gravitational acceleration error istheoretically 0. However, it is typically difficult to satisfy thecondition A, and therefore, the gain Ka is preferably set as shown inFIG. 8( c).

The fourth embodiment described above is associated with the first tosixth, and eighth to twenty-second implementations of the presentinvention.

Now, a fifth embodiment of the present invention will be described. Thefifth embodiment will be described with reference to FIGS. 20 and 21.FIG. 20 is a flowchart showing a self-position estimating process instep S016 in FIG. 9 according to the fifth embodiment, and FIG. 21 is ablock diagram showing means for estimating a total center of gravityused in the self-position estimating process in step S016 according tothe fifth embodiment. In the fifth embodiment, aninertial-navigation-like estimated total-center-of-gravity positionXGinertestm, described later, is determined for each control cycle,instead of the inertial-navigation-like estimated body positionXinertestm determined in the fourth embodiment. The other part of theprocess is the same as in the fourth embodiment. In FIG. 21, samesections as those in FIG. 17 are assigned the same reference numerals asthose in FIG. 17.

With reference to FIGS. 20 and 21, the self-position estimating processin step S016 according to the fifth embodiment will be described. First,as in step S2300 in FIG. 16 according to the fourth embodiment, in stepS2400 in FIG. 20, the detection value of the gyro sensor is integratedto determine the estimated body posture, and a detection drift of thegyro sensor and a drift of the inclination component of the estimatedbody posture are corrected.

Then, the process proceeds to step S2402, where the processings in stepsS2204 to S2214 shown in FIG. 14 are conducted to determine theposition/posture of the estimated supporting leg coordinate system andthe geometrically estimated body position.

Then, the process proceeds to step S2404, where thetotal-center-of-gravity position is determined through a kinematicscalculation based on the position/posture of the estimated supportingleg coordinate system, the desired body position/posture (or thegeometrically estimated body position) and the joint displacementdetection values (or the desired values thereof), taking the actualbehavior (posture rotation) of the robot as in the third embodiment.This processing is performed in a block 330 in FIG. 21. Thetotal-center-of-gravity position thus calculated is referred to as ageometrically estimated total-center-of-gravity position.

Then, the process proceeds to step S2406, where the acceleration of thetotal center of gravity is calculated through a kinematics calculationbased on the joint angle detection values (or the desired valuesthereof), the estimated body posture (or the desired body posture) andthe accelerometer's detection value's global-coordinate-system-convertedvalue. This processing is performed in a block 331 in FIG. 21. In thefollowing, the acceleration of the total center of gravity is referredto as an inertial-navigation-like estimated total-center-of-gravityacceleration.

Then, the process proceeds to step S2408, where theinertial-navigation-like estimated total-center-of-gravity positionXGinertestm is determined by the inertial navigation method based on theinertial-navigation-like estimated total-center-of-gravity acceleration,and the inertial-navigation-like estimated total-center-of-gravityposition is corrected so as to make the difference between thegeometrically estimated total-center-of-gravity position and theinertial-navigation-like estimated total-center-of-gravity positionconverge to 0. More specifically, as shown in FIG. 21, the differencebetween the inertial-navigation-like estimated total-center-of-gravityposition XGinertestm determined in a preceding control cycle (that is,the last or previous control cycle) and the geometrically estimated bodyposition is determined in a block 332, and the sum of the timedifferential value (or a variation of the difference in the controlcycle) of the difference multiplied with the gain Kc and the value ofthe difference multiplied with the gain Kd is determined in a block 333.That is, the sum described above is determined from the differencedescribed above according to the PD control law, a feedback control law.Then, the sum (output from the block 333) is subtracted from theinertial-navigation-like estimated total-center-of-gravity accelerationoutput from the block 331 in a block 334, and the resulting value isintegrated two times in a block 335, thereby determining a newinertial-navigation-like estimated total-center-of-gravity positionXGinertestm.

Finally, the process proceeds to step S2410, where the estimated bodyposition in the global coordinate system is determined based on theinertial-navigation-like estimated total-center-of-gravity position, thejoint displacement detection values (or the desired values thereof) andthe estimated body posture (or the desired body posture). Thisprocessing is performed in a block 336 in FIG. 21.

Described above is the self-position estimating process in step S016 inFIG. 9 according to the fifth embodiment.

According to the fifth embodiment, it may be determined whether it is inthe floating period or not, and if it is determined to be in thefloating period, the inertial-navigation-like estimatedtotal-center-of-gravity acceleration may be determined, without usingthe accelerometer, on the assumption that the total center of gravitymoves in a parabola.

If it is evident that the robot 1 is not subjected to any external forcefrom the environment, the total center of gravity moves in a paraboladuring the floating period, and therefore, the total-center-of-gravityposition can be estimated with a higher precision.

Determination of whether it is in the floating period or not can beachieved using at least one of the period (phase) in the desired gait,the floor reaction force of the desired gait, and the detection value ofthe floor reaction force.

In particular, if it is desirable that the estimation precision of thetotal center of gravity is as high as possible, whether it is in thefloating period or not can be determined based on whether the detectionvalue of the floor reaction force is equal to or lower than apredetermined value or not.

The fifth embodiment described above is associated with the first tosixth, and eighth to twenty-second implementations of the presentinvention.

Now, a sixth embodiment of the present invention will be described withreference to FIGS. 22. FIG. 22 is a block diagram showing means forestimating a total center of gravity used in the self-positionestimating process in step S016 in FIG. 9 according to the sixthembodiment.

According to the sixth embodiment, a dynamically estimatedtotal-center-of-gravity position is calculated based on the detectionvalue of the floor reaction force detected by the six-axis force sensor(floor reaction force sensor) 50, instead of theinertial-navigation-like estimated total-center-of-gravity positiondetermined based on the detection value of the accelerometer in thefifth embodiment. The other part is the same as in the fifth embodiment.In FIG. 22, same sections as those in FIG. 21 are assigned the samereference numerals as those in FIG. 21.

With reference to FIG. 22, a process of estimating thetotal-center-of-gravity position for each control cycle will bedescribed. First, in a block 340, the detection value of the floorreaction force sensor (six-axis force sensor 50) is converted into avalue in the global coordinate system using the joint angle detectionvalues (or the desired values thereof) and the estimated body posture(or the desired body posture). In the following, the converted detectionvalue of the floor reaction force sensor will be referred to as afloor-reaction-force-sensor's detection value'sglobal-coordinate-system-converted value.

Then, the floor-reaction-force-sensor's detection value'sglobal-coordinate-system-converted value is divided by the total mass ofthe robot 1 in a block 341, and, in a block 342, the gravitationalacceleration is subtracted from the resulting value, thereby determiningthe estimated value of the total-center-of-gravity acceleration. In thefollowing, the total-center-of-gravity acceleration will be referred toas a dynamically estimated total-center-of-gravity acceleration.

Then, as in the fifth embodiment, the geometrically estimatedtotal-center-of-gravity position is determined in the block 330.

Then, the dynamically estimated total-center-of-gravity position isdetermined by integrating the dynamically estimatedtotal-center-of-gravity acceleration two times, and the dynamicallyestimated total-center-of-gravity position is corrected so as to makethe difference between the geometrically estimatedtotal-center-of-gravity position and the inertial-navigation-likeestimated total-center-of-gravity position converge to 0.

More specifically, as shown in FIG. 22, the difference between thedynamically estimated total-center-of-gravity position determined in apreceding control cycle (that is, the last or previous control cycle)and the geometrically estimated total-center-of-gravity position isdetermined in a block 343, and the sum of the time differential value(or a variation of the difference in the control cycle) of thedifference multiplied with the gain Kc and the value of the differencemultiplied with the gain Kd is determined in a block 344. That is, thesum described above is determined from the difference described aboveaccording to the PD control law, a feedback control law. Then, the sum(output from the block 344) is subtracted from the dynamically estimatedtotal-center-of-gravity acceleration output from the block 342 in ablock 345, and the resulting value is integrated two times in a block346, thereby determining a new dynamically estimatedtotal-center-of-gravity position XGinertestm.

Finally, in a block 347, the body position in the global coordinatesystem is determined based on the dynamically estimatedtotal-center-of-gravity position, the joint displacement detectionvalues (or the desired values thereof) and the estimated body posture(or the desired body posture).

Described above is the means for estimating the total center of gravityand the body position used in the self-position estimating process instep S016 according to the sixth embodiment.

According to the sixth embodiment, it may be determined whether it is inthe floating period or not, and if it is determined to be in thefloating period, the dynamically estimated total-center-of-gravityacceleration may be determined, without using the detection value of thefloor reaction force sensor, on the assumption that the total center ofgravity moves in a parabola.

If it is evident that the robot is not subjected to any external forcefrom the environment, the total center of gravity moves in a paraboladuring the floating period, and therefore, the total-center-of-gravityposition can be estimated with a higher precision.

Determination of whether it is in the floating period or not can beachieved using at least one of the period (phase) in the desired gait,the floor reaction force of the desired gait, and the detection value ofthe floor reaction force.

In particular, if it is desirable that the estimation precision of thetotal center of gravity is as high as possible, whether it is in thefloating period or not can be determined based on whether the detectionvalue of the floor reaction force is equal to or lower than apredetermined value or not.

The sixth embodiment described above is associated with the first tosixth, eighth, ninth and twenty-third to thirtieth implementations ofthe present invention.

The posture rotation center determined in the embodiments describedabove will be described below more specifically. When any of the legs 2is in contact with the floor, and a sufficient floor reaction forceoccurs, the posture rotation center is considered to lie in thesupporting polygon (that is, a minimum convex polygon containing thecontact surface, a possible area of the ZMP or a possible area of thecentral point of the total floor reaction force).

The reason for this is as follows. If the posture rotation center liesout of the supporting polygon, every point in the bottom surface of thefoot 22 relatively moves with respect to the floor, and therefore, adynamical friction occurs at every contact point between the bottomsurface of the foot 22 and the floor. The dynamical friction remains ata constant value and cannot be controlled to an arbitrary value even ifthe robot 1 moves the legs 2 in an attempt to control the floor reactionforce. This can be compared to a situation in which one cannot walkproperly on a slippery ice surface. Therefore, if the robot 1 movesstably by controlling the floor reaction force, it can be consideredthat, in a certain area between the bottom surface of the foot 22 andthe floor, no slipping occurs and a static friction occurs. That is, theposture rotation center is considered to lie in the supporting polygon.Incidentally, if the foot 22 of the robot 1 is perfectly rigid, slippingoccurs at every contact point other than the posture rotation center.However, since the sole of the foot 22 is actually made of an elasticmaterial, such as rubber, it can be considered that no slipping occursin the vicinity of the posture rotation center.

In addition, during the floating period, the robot is considered toperform a perturbation movement about the center of gravity.

In a period other than that described above, that is, when a sufficientfloor reaction force does not occur although any of the legs 2 is incontact with the floor, considering the movement continuity, the posturerotation center is considered to lie between the supporting polygon andthe total-center-of-gravity position (or the position of therepresentative point of the body).

Thus, in general, the posture rotation center determined in step S2204(see FIG. 14) performed in the third embodiment is desirably any of thefollowing points:

-   (all at the current time t)-   (a) the desired ZMP;-   (b) the actual ZMP (that is, the actual floor reaction force's    central point, or the central point of the pressure of the floor    reaction force);-   (c) a predetermined point, the origin, for example, in the    supporting leg coordinate system;-   (d) the total center of gravity;-   (e) the representative point of the body; and-   (f) the internally dividing point of some of the points described    above.

When any of the legs is in contact with the floor, and a sufficientfloor reaction force occurs, the posture rotation center preferably liesin the supporting polygon. Specifically, the posture rotation center ispreferably set at the point (a) or (b). Alternatively, the posturerotation center may be set at the predetermined point (c) so that it iscontained in the supporting polygon. For example, the posture rotationcenter may be set at the origin (typically, located below the anklejoints) of the supporting coordinate system.

In the floating period, the posture rotation center is preferably set atthe point (d). However, since the total-center-of-gravity position is inthe vicinity of the representative point of the body, the posturerotation center may be set at the point (e).

In a period other than that described above, that is, when a sufficientfloor reaction force does not occur although any of the legs 2 is incontact with the floor, the posture rotation center is preferably set atthe point (f).

Furthermore, considering the movement continuity for all the periods,the posture rotation center is preferably set in such a manner that itvaries continuously.

In any case, at substantially all the instants, the posture rotationcenter is preferably set on the surface of or in a smallest convexpolyhedron containing the whole robot 1.

Similarly, in general, the posture rotation center determined in stepS2006 in FIG. 10 according to the first embodiment and in step S2106 inFIG. 12 according to the second embodiment is desirably any of thefollowing points:

-   (a) the desired ZMP position at a landing time n of a free leg or    averaged for a period of one step;-   (b) the actual ZMP position (that is, the actual floor reaction    force's central point, or the central point of the pressure of the    floor reaction force) at a landing time n of a free leg or averaged    for a period of one step;-   (c) a predetermined point, the origin, for example, in the    supporting leg coordinate system;-   (d) the total-center-of-gravity position at a landing time n of a    free leg or averaged for a period of one step;-   (e) the representative point of the body at a landing time n of a    free leg or averaged for a period of one step; and-   (f) the internally dividing point of some of the points described    above.

In any case, the posture rotation center is preferably set on thesurface of or in a smallest convex polyhedron containing the area sweptby whole robot 1 during the latest one step.

Alternatively, the posture rotation center is preferably set on thesurface of or in a smallest convex polyhedron that contains the wholerobot 1 at a certain instant, for example, at the instant of landing.

According to the fourth embodiment, in correcting theinertial-navigation-like estimated body position using the geometricallyestimated body position, the correcting input (that is, the output ofthe block 318 in FIG. 17) is additionally supplied to the integrator(the block 320 in FIG. 17) for calculating the inertial-navigation-likeestimated body position. Therefore, the inertial-navigation-likeestimated body position is corrected for each control cycle. However,the inertial-navigation-like estimated body position may be determinedwithout correction for a predetermined period of time, aninterpolatively estimated body position, which is an interpolation ofthe inertial-navigation-like estimated body position and thegeometrically estimated body position, may be determined using thefollowing formula 45, and the interpolatively estimated body positionmay be finally output as the estimated body position.interpolatively estimated body position=α*inertial-navigation-likeestimated body position+(1−α)*geometrically estimated bodyposition  formula 45

However, the character α denotes the weight of the weighted average,which gradually varies from 1 to 0 during the predetermined period oftime.

When α reaches 0, the inertial-navigation-like estimated body positionis substituted (overwritten) with the geometrically estimated bodyposition, and the value of α is restored to 1.

In addition, the predetermined period of time is set in a period otherthan the floating period.

In the fifth and sixth embodiments, as in the fourth embodiment, theremay be determined the interpolatively estimated total-center-of-gravityposition, which is an estimated total-center-of-gravity positiondetermined by interpolation of the inertial-navigation-like ordynamically estimated total-center-of-gravity position and thegeometrically estimated total-center-of-gravity position.

In the fourth to sixth embodiments, only the vertical positionalcomponent (with respect to the floor) of the inertial-navigation-likeestimated body position, the inertial-navigation-like estimatedcenter-of-gravity position or the dynamically estimatedcenter-of-gravity position may be corrected. Alternatively, only thehorizontal component thereof may be corrected.

The correction gains Ka, Kb, Kc and Kd may be determined using astationary Kalman filter or a non-stationary Kalman filter. However, asfor the robot 1 according to this embodiment, in particular, when therobot is moving, the characteristics of a system noise (disturbance) andan observation noise do not adequately satisfy the precondition of theKalman filter, and therefore, the Kalman filter cannot always beadequately effective.

The accelerometer and the gyro sensor may be mounted on (or incorporatedin) a part of the robot other than the body 3, for example, the headportion 4. Furthermore, in the case where there is a neck joint betweenthe head portion 4 and the body 3, the self-position estimation can beachieved in the same manner as in the embodiments described above exceptthat the detection values of the accelerometer and the gyro sensor haveto be additionally converted into the acceleration and the angularacceleration of the representative point of the body, respectively,through a kinematics calculation based on a displacement command (adesired displacement) for the neck joint or a displacement detectionvalue thereof.

Depending on the component of the estimated position/posture (that is,whether the positional vertical component, the positional horizontalcomponent, the directional component about the vertical axis, or theinclination component), a different one of the self-position estimatingprocesses according to the first to sixth embodiments can be selected.For example, the horizontal position of the body 3 may be estimatedgeometrically in accordance with the self-position estimating processaccording to the third embodiment, while, as for the vertical positionthereof, the inertial-navigation-like estimated body's vertical positionmay be corrected using the geometrically estimated body's verticalposition in accordance with the self-position estimating processaccording to the fourth embodiment.

In the embodiments in which the joint displacements are used indetermining the estimated supporting leg coordinate system and thegeometrically estimated body position, the joint displacements of thedesired gait or the joint displacement detection values are used as thejoint displacements. However, the weighted averages thereof may be used.Furthermore, the weight may have a frequency characteristic.

The estimated position/posture, such as the estimated supporting legcoordinate system or the estimated body position/posture, may berepresented by a perturbation from the desired position/posture, ratherthan represented with respect to the global coordinate system as in theembodiments described above.

In the fourth and later embodiments, as shown in FIG. 17, the estimatedbody posture angular error in the global coordinate system is determinedbased on the estimated gravitational acceleration in the globalcoordinate system, the estimated body posture angular error in theglobal coordinate system is multiplied with the gain Kb, and theresulting value is additionally input to the integrator (the block 310in FIG. 17) for integrating the body angular velocity ωgl in the globalcoordinate system, thereby correcting the estimated body posture. Thatis, the estimated body posture is corrected in the global coordinatesystem. Instead, however, the estimated body posture may be corrected inthe local coordinate system of the gyro sensor (that is, the coordinatesystem fixed to the body 3). Specifically, in FIG. 17, the block 309 ofthe gain Kb and the adder (block 308) that subtracts the output of theblock 309 from the body angular velocity ωgl in the global coordinatesystem may be omitted, and the integrator Ka/S (block 306) may bereplaced with a block Ka/S+Kb, that is, a block of PI control law.

In principle, even if such correction in the local coordinate system isperformed, convergence of the inclination drift during revolution(including in-situ revolution) with a high yaw rate is not adverselyaffected by the gain Kb.

In correcting the estimated body posture, the estimated gravitationalacceleration may be determined by subtracting the body acceleration ofthe desired gait from the accelerometer's detection value'sglobal-coordinate-system-converted value, rather than by subtracting thegeometrically estimated body acceleration from the accelerometer'sdetection value's global-coordinate-system-converted value.

In actual, the posture of the robot attempting to move following thedesired gait is rotated about the posture rotation center. Therefore,due to the posture rotation, the body acceleration deviates from that ofthe desired gait. However, the posture inclination included in theposture rotation is 0 on average, even if it varies back and forth andaround. In addition, the spin included in the posture rotation isapproximately 0 on average, because the direction of the spin isinverted at every step. Therefore, excluding the force, such as thecentrifugal force, acting in substantially the same direction regardlessof the direction of the posture rotation, the long-term effect of theposture rotation on the body acceleration is substantially 0, becausethe positive component and the negative component cancel out each other.The term “long term” means a period of time equal to or longer than thesettling time of correction of the estimated body posture.

Therefore, instead of the geometrically estimated body acceleration, thebody acceleration of the desired gait can be used for correcting theestimated body posture without significantly degrading the effectivenessof the correction.

As in the fourth embodiment, in the first to third embodiments, adetection drift of the gyro sensor can be corrected using the movementacceleration calculated from the geometrically estimated bodyposition/posture movement and the detection value of the accelerometer.Furthermore, in the first to third embodiments, a drift of theinclination component of the estimated body posture can be corrected inthe same manner as in the fourth embodiment. Furthermore, in the firstto third embodiments, yaw rate correction can be achieved in the samemanner as in the fourth embodiment.

Now, a seventh embodiment of the present invention will be describedwith reference to FIGS. 23 to 25. FIGS. 23 and 24 show an internalarrangement of the head portion 4 of the robot 1 according to theseventh embodiment. FIG. 23 is a front view thereof, and FIG. 24 is aside view thereof. The head portion 4 is connected to the top of thebody 3 via a neck joint 120 capable of rotating in pan and tiltdirections.

As with the other joints, the neck joint 120 also has electric motors121, 122 with an encoder (an joint displacement detector) anddecelerators 123, 124 and is controlled to follow a joint displacementcommand from the control unit 60 by a motor controller (not shown).

The head portion 4 has two, left and right, video cameras 125, 125 asenvironment recognition means, so that it can get a stereoscopic view ofa target object. Although not shown in FIG. 5, the outputs (that is, thepicked-up image information) of the video cameras 125, 125 are input tothe control unit 60, and control unit 60 recognizes the distance to thetarget object or the like in the picked-up image information.

Instead of the two, left and right, video cameras 125, 125, thefollowing environment recognition means may be used:

-   (a) means for enabling stereoscopic view with three or more cameras;-   (b) means for recognizing multiple points on a target object with    one camera and estimating the distance to the target object on the    principle of triangulation; and-   (c) a non-contact multi-point distance meter, such as a rangefinder    and a scanning laser distance meter.

The seventh embodiment differs from the fourth embodiment in theself-position estimating process in step S016 in FIG. 9, in addition tothe arrangement of the head portion 4 described above. The otherarrangements and processings are the same as those in the fourthembodiment. The other arrangements and processings may be the same asthose in the fifth or sixth embodiment, rather than the fourthembodiment.

FIG. 25 is a flowchart showing a self-position estimating process instep S016 in FIG. 9 according to the seventh embodiment. According tothe seventh embodiment, the estimated self position/posture in thefourth embodiment is used to control the neck joint 120 so that thetarget object is captured at the center of or at an appropriate positionin the image taken by the video cameras 125, 125 (simply referred to asa camera image, hereinafter), thereby achieving gazing control forcontrolling the directions of the video cameras 125, 125. In addition, alandmark or the like, whose precise position in the global coordinatesystem has been previously stored, is recognized by the video cameras125, 125 (or a range finder or the like) to correct the estimated selfposition/posture. In addition, the target object is recognized by thevideo cameras 125, 125, and the position/posture of the target object inthe global coordinate system and the shape thereof are recognized basedon the information obtained by the video cameras 125, 125 and theestimated self position/posture.

Here, instead of the estimated self position/posture in the fourthembodiment, the estimated self position/posture in the third, fifth orsixth embodiment may be used.

Now, the operation according to the seventh embodiment will be describedin detail with reference to FIG. 25.

First, in steps S2500 to S2504, the same processings as those in stepsS2300 to S2304 in the fourth embodiment are performed to determine theestimated body posture, the position/posture of the estimated supportingleg coordinate system, the geometrically estimated body position and theinertial-navigation-like estimated body position.

Then, the process proceeds to step S2506, where it is determined whetherto perform gazing control or not. Specifically, whether to performgazing control or not is determined based on the current estimated bodyposture, the current inertial-navigation-like estimated body position,the desired path of the robot 1 and map information. If it is determinedto perform gazing control, it is determined what target object is to begazed. Specifically, the map information includes description of an areain which each target object can be observed and the relative positionalrelationship between the robot 1 and the target object can be determined(referred to as an observable area, hereinafter). Then, based on thecurrent estimated body posture, the current inertial-navigation-likeestimated body position and a future desired path, it is determinedwhether the target object will remains in any of the observable areasfor a predetermined period of time from the current moment, and if it isexpected that the target object will remains in the observable area forthe predetermined period of time, it is determined that gazing controlshould be performed.

The target object to be gazed may be previously specified based on themovement path by an action planning portion (not shown) of the robot 1positioned higher than the movement control portion (the portion shownin FIG. 6) in the hierarchy of the robot 1 or specified by the operatorvia a man-machine interface.

Here, the map information concerns the position, the feature, theobservable area or the like of a landmark, an obstacle, a destination, amovable range, a road or the like and is previously stored in a memory.

Then, the process proceeds to step S2508, where the relativerelationship between the position of the target object to be gazed onthe map and the estimated body position/posture.

Then, the process proceeds to step S2150, where, based on the relativerelationship, the desired neck joint displacement is determined througha kinematics calculation in such a manner that the target object iscaptured at the center of the camera image.

Then, the process proceeds to step S2512, where the neck joint motors121, 122 are controlled to provide the desired neck joint displacement.Specifically, the control unit 60 outputs the desired neck jointdisplacement to the motor controller (that is, the motor driver) for theneck joint motors 121, 122. Then, the motor controller (motor driver)for the neck joint motors 121, 122 controls the current supplied to theneck joint motors 121, 122 in such a manner that the neck jointdisplacement detection value follows the desired neck jointdisplacement.

Then, the process proceeds to step S2514, where it is determined whetherthe target object is a landmark or not. Specifically, whether the targetobject is a landmark or not is determined based on retrieved informationabout the attribute of the target object.

If the result of the determination in step S2514 is YES, the processproceeds to step S2516, where the position/posture of the supporting legcoordinate system associated with the current position/posture of thefoot of the supporting leg of the actual robot 1 (hereinafter, referredto as a visually estimated supporting leg coordinate system) in theglobal coordinate system is estimated through a geometrical calculationbased on the camera image, the map information, the estimated bodyposition/posture and the neck joint displacement.

Following step S2516, the process proceeds to step S2518, where theposition/posture of the estimated supporting leg coordinate system iscorrected so that the difference between the position/posture of thevisually estimated supporting leg coordinate system and theposition/posture of the estimated supporting leg coordinate systemconverges to 0.

The processing in step S2518 will be described more specifically. First,the difference between the position/posture of the visually estimatedsupporting leg coordinate system and the position/posture of theestimated supporting leg coordinate system is determined. Then, theproduct of the difference and a predetermined gain Ke is determined, theproduct is added to the position/posture of the estimated supporting legcoordinate system, and the resulting position/posture is defined as theposition/posture of a new estimated supporting leg coordinate system.

That is, the new estimated supporting leg coordinate system isdetermined by the following formula 46. In other words, theposition/posture of the new estimated supporting leg coordinate systemis determined by interpolation (that is, interior division or weightedaverage) of the position/posture of the visually estimated supportingleg coordinate system and the position/posture of the estimatedsupporting leg coordinate system.new estimated supporting leg coordinate system=position/posture ofestimated supporting leg coordinate system+Ke*(position/posture ofvisually estimated supporting leg coordinate system−position/posture ofestimated supporting leg coordinate system)  formula 46

The gain Ke may be determined based on the likelihood of each estimatedvalue so that the estimated supporting leg coordinate system newlydetermined assumes a value having the highest probability as a truevalue.

If the result of the determination in step S2514 is NO, the processproceeds to step S2520, where the shape/position of the target object iscalculated from the camera image, the map information, the estimatedbody position/posture and the neck joint displacement. In the following,the shape/position of the target object thus calculated will be referredto as a visually estimated target-object shape/position.

Following step S2520, the process proceeds to step S2522, where theshape/position of the target object registered in the map information iscorrected based on the visually estimated target-object shape/position.Specifically, the shape/position of the target object registered in themap information is corrected so as to make the difference between thevisually estimated target-object shape/position and the shape/positionof the target object registered in the map information converge to 0.

More specifically, first, the difference between the visually estimatedtarget-object shape/position and the shape/position of the target objectregistered in the map information is determined. Then, the product ofthe difference and a predetermined gain Kf is determined, the product isadded to the shape/position of the target object registered in the mapinformation, and the resulting shape/position is defined as a newshape/position of the target object registered in the map information.

That is, the new shape/position of the target object registered in themap information is determined by the following formula 47. In otherwords, the new shape/position of the target object registered in the mapinformation is determined by interpolation (that is, interior divisionor weighted average) of the visually estimated target-objectshape/position and the shape/position of the target object registered inthe map information.new shape/position of target object registered in mapinformation=shape/position of target object registered in mapinformation+Kf*(visually estimated target-objectshape/position−shape/position of target object registered in mapinformation)  formula 47

The self-position estimating process in step S016 ends with thecompletion of the processing in step S2518 or S2522.

The position of the visually estimated supporting leg coordinate systemis estimated based on the inertial-navigation-like estimated bodyposition, and the inertial-navigation-like estimated body position isdetermined so as to converge to the geometrically estimated bodyposition/posture calculated based on the estimated supporting legcoordinate system. Therefore, if the position/posture of the estimatedsupporting leg coordinate system is modified in the processing in stepS2518, the position of the visually estimated supporting leg coordinatesystem is also modified with a certain delay. Therefore, in theprocessing in step S2518, a too high gain Ke intended for acceleratingthe convergence can possibly result in an oscillation. To increase thegain Ke while avoiding such oscillation, the position/posture of theestimated supporting leg coordinate system is corrected in accordancewith the difference between the position/posture of the visuallyestimated supporting leg coordinate system and the position/posture ofthe estimated supporting leg coordinate system, and theinertial-navigation-like estimated body position is also correcteddirectly, thereby reducing the delay in modification of the position ofthe visually estimated supporting leg coordinate system.

If the difference between the estimated body position/posture and thevisually estimated body position/posture or the difference between thevisually estimated target-object shape/position and the shape/positionof the target object registered in the map information is greater than apredetermined allowable value, it may be determined that the recognitionis erroneous, and the estimated body position/posture or theshape/position of the target object registered in the map informationmay not be corrected using the value.

The seventh embodiment described above is associated with thethirty-first to thirty-seventh implementations of the present invention.

As described above, according to the first embodiment, assuming that theactual behavior of the robot 1 is a rotation, during one step, of therobot 1 and the estimated supporting leg coordinate system, theestimated supporting leg coordinate system being a local coordinatesystem that describes the movement of the robot 1 and the robot 1 movingfollowing the desired gait in the estimated supporting leg coordinatesystem, about the predetermined posture rotation center determined bythe posture rotation center determining means by the difference betweenthe posture detected or estimated by the posture detecting means (or thevertical component of the difference), the position/posture of the newestimated supporting leg coordinate system depending on theposition/posture of the free leg at the time of landing, that is, theposition and orientation of the landing point are estimated for everystep (for every landing). Therefore, the position and orientation of thelanding point can be estimated with high precision. In particular, theposition and orientation of the landing point can be estimated with highprecision even if the robot 1 is in a state where the accelerationthereof varies greatly horizontally or vertically, in a state where allthe legs 2, 2 float in the air, which occurs during the floating periodwhen the robot is running, for example, or in a state where a posturerotation (or a spin) of the whole robot occurs due to a rotationalslipping of a foot 22 with respect to the floor.

According to the second embodiment, assuming that the actual behavior ofthe robot 1 is a rotation, during one step, of the robot 1 and theestimated supporting leg coordinate system, the estimated supporting legcoordinate system being a local coordinate system that describes themovement of the robot 1 and the robot 1 moving following at least thejoint displacement detection values while keeping the body postureaccording to the desired gait in the estimated supporting leg coordinatesystem, about the predetermined posture rotation center determined bythe posture rotation center determining means by the difference betweenthe posture detected or estimated by the posture detecting means, andthe position/posture of the new estimated supporting leg coordinatesystem depending on the position/posture of the free leg at the time oflanding, that is, the position and orientation of the landing point areestimated for every step (each time the foot lands on the floor).Therefore, the position and orientation of the landing point can beestimated with a higher precision.

According to the third embodiment, assuming that the actual behavior ofthe robot 1 is a rotation, at each instant, of the robot 1 and theestimated supporting leg coordinate system, the estimated supporting legcoordinate system being a local coordinate system that describes themovement of the robot 1 and the robot 1 moving following the desiredgait in the estimated supporting leg coordinate system, about thepredetermined posture rotation center at that instant determined by theposture rotation center determining means at a variation rate, which isthe difference between the variation rate of the body posture detectedor estimated by the posture detecting means and the variation rate ofthe body posture of the desired gait, and the estimated supporting legcoordinate system and the estimated body position/posture are newlydetermined (updated) at each instant (for each control cycle). Inaddition, for every step (each time a foot lands on the floor), theposition/posture of the new estimated supporting leg coordinate systemdepending on the position/posture of the free leg, that is, the positionand orientation of the new landing point are estimated. Therefore, theposition and orientation of the landing point can be estimated withhigher precision, and the self position/posture of the robot 1 can beestimated continuously with high precision.

According to the fourth embodiment, the estimated body position (theinertial-navigation-like estimated body position) and the estimated bodyposture are determined by the inertial navigation method, and thegeometrically estimated body position, which is the estimated bodyposition determined in the third embodiment, is used to correct theinertial-navigation-like estimated body position and the estimated bodyposture. Therefore, the self position/posture of the robot 1 and thelanding position and orientation thereof (that is, the position andorientation of the estimated supporting leg coordinate system) can beestimated with a higher precision.

According to the fifth embodiment, instead of theinertial-navigation-like estimated body position Xinertestm determinedin the fourth embodiment, the inertial-navigation-like estimatedtotal-center-of-gravity position is determined for each control cycle.Therefore, the self position/posture of the robot 1 and the landingposition and orientation thereof (that is, the position and orientationof the estimated supporting leg coordinate system) can be estimated withhigh precision, as with the fourth embodiment.

According to the sixth embodiment, instead of theinertial-navigation-like estimated total-center-of-gravity positiondetermined based on the detection value of the accelerometer in thefifth embodiment, the dynamically estimated total-center-of-gravityposition is calculated from the detection value of the floor reactionforce sensor. Therefore, the self position/posture of the robot 1 andthe landing position and orientation thereof (that is, the position andorientation of the estimated supporting leg coordinate system) can beestimated with high precision, as with the fifth embodiment.

According to the seventh embodiment, the environment recognition means,such as the video cameras 125, 125, mounted on the robot 1 determinesthe direction of gazing using the self-position geometrically estimatingcalculation or compositely using the self-position geometricallyestimating calculation and the inertial navigation calculation based onthe self position/posture estimated continuously (for each controlcycle) and the position, in the global coordinate system, of a targetobject on the previously stored map, such as a floor surface or anobstacle. Therefore, the target object can be continuously captured atthe center of or at an appropriate position in an image taken by theenvironment recognition means.

In addition, when the environment recognition means recognizes thetarget object, the position/posture of the target object in the globalcoordinate system or the shape thereof can be recognized with highprecision based on the information obtained by the environmentrecognition means and the estimated self position/posture.

In addition, the position/shape of the target object on the map iscorrected based on plural successive images, and therefore, thecorrection is less susceptible to the influence of a noise or erroneousrecognition.

In addition, the environment recognition means corrects the selfposition/posture estimated using the self-position geometricallyestimating calculation or the self position/posture estimatedcompositely using the self-position geometrically estimating calculationand the inertial navigation calculation based on the previously-storedprecise information about the position of a target object, such as alandmark, and the information about the relative position of the robot 1with respect to the target object obtained by the environmentrecognition means, and thus, the self position/posture can be estimatedwith a higher precision.

In addition, the self position/posture is corrected based on pluralsuccessive images, and therefore, the correction is less susceptible tothe influence of a noise or erroneous recognition.

In addition, in the fourth embodiment, the influence of the movementacceleration can be reduced, so that the posture inclination of therobot 1 can be estimated with high precision. This holds true for theother embodiments.

In addition, in the fourth embodiment, the yaw rate is corrected, sothat the posture (in particular, the direction of the horizontalcomponent thereof) and position of the robot 1 can be estimated with ahigher precision. This holds true for the other embodiments.

INDUSTRIAL APPLICABILITY

As described above, the present invention effectively provides atechnique for estimating the position of a leg type movable robot, suchas a two-legged movable robot, with high precision.

1. A self-position estimating device for a leg type movable robot thatis controlled to follow a determined desired gait, comprising: posturerotational deviation calculating means for determining a temporalvariation of posture rotational deviation, which is the differencebetween a detected or estimated value of an actual posture of apredetermined part of said robot and a desired posture of saidpredetermined part in said desired gait, as a posture rotationaldeviation's variation; rotation center determining means for determiningthe rotation center of the variation of said posture rotationaldeviation; and position estimating means for determining an estimatedposition of said robot, that is, an estimated value of the position ofsaid robot, on the assumption that said robot rotates about saidrotation center by said posture rotational deviation's variation.
 2. Theself-position estimating device for a leg type movable robot accordingto claim 1, wherein said position estimating means comprises means fordetermining a second coordinate system, which is obtained by rotating afirst coordinate system that describes said desired gait about saidrotation center by said posture rotational deviation's variation, andsaid position estimating means determines the estimated position of therobot seen from a global coordinate system in such a manner that therobot position seen from said first coordinate system, which isrecognized from at least any of a desired movement with said desiredgait, a displacement detection value of a joint of said robot and adesired displacement value of the joint, agrees with the estimatedposition of the robot seen from said second coordinate system.
 3. Theself-position estimating device for a leg type movable robot accordingto claim 2, wherein said predetermined part is a body of said robot. 4.The self-position estimating device for a leg type movable robotaccording to claim 2, wherein said posture rotational deviation includesat least a posture rotational deviation component of said predeterminedpart in a yaw direction.
 5. The self-position estimating device for aleg type movable robot according to claim 2, characterized in that thedesired gait of said robot is a gait including a floating period inwhich all the legs of the robot float in the air, and said rotationcenter determining means sets said rotation center at the center ofgravity of said robot during said floating period and sets said rotationcenter at an actual floor reaction force central point, a desired ZMP ofthe desired gait or a point in the vicinity of the points during aperiod other than the floating period.
 6. The self-position estimatingdevice for a leg type movable robot according to claim 2, wherein saidposture rotational deviation calculating means is means for successivelydetermining said posture rotational deviation's variation at eachinstant, and said position estimating means successively determines theestimated position of said robot at each instant using the posturerotational deviation's variation at each instant.
 7. The self-positionestimating device for a leg type movable robot according to claim 2,wherein said posture rotational deviation calculating means is means fordetermining a posture rotational deviation's variation between landings,which is a posture rotational deviation's variation for a period fromthe last-time leg landing of a leg to the current-time leg landing, eachtime a leg of the robot lands on a floor via a landing operation of therobot, and said position estimating means determines the estimatedposition of said robot at each landing using the posture rotationaldeviation's variation between landings.
 8. The self-position estimatingdevice for a leg type movable robot according to claim 2, wherein theposition of the robot estimated by said position estimating means is acontact position of the leg, which comes into contact with the floor inthe landing operation of the robot.
 9. The self-position estimatingdevice for a leg type movable robot according to claim 2, wherein theself-position estimating device further comprises floor reaction forcedetecting means for detecting a floor reaction force applied to saidrobot, and said position estimating means estimates a deformation ofsaid robot based on said detected floor reaction force and determinesthe estimated position of said robot using at least the estimateddeformation.
 10. The self-position estimating device for a leg typemovable robot according to claim 1, wherein said predetermined part is abody of said robot.
 11. The self-position estimating device for a legtype movable robot according to claim 1, wherein said posture rotationaldeviation includes at least a posture rotational deviation component ofsaid predetermined part in a yaw direction.
 12. The self-positionestimating device for a leg type movable robot according to claim 1,characterized in that the desired gait of said robot is a gait includinga floating period in which all the legs of the robot float in the air,and said rotation center determining means sets said rotation center atthe center of gravity of said robot during said floating period and setssaid rotation center at an actual floor reaction force central point, adesired ZMP of the desired gait or a point in the vicinity of the pointsduring a period other than the floating period.
 13. The self-positionestimating device for a leg type movable robot according to claim 1,wherein said posture rotational deviation calculating means is means forsuccessively determining said posture rotational deviation's variationat each instant, and said position estimating means successivelydetermines the estimated position of said robot at each instant usingthe posture rotational deviation's variation at each instant.
 14. Theself-position estimating device for a leg type movable robot accordingto claim 1, wherein said posture rotational deviation calculating meansis means for determining a posture rotational deviation's variationbetween landings, which is a posture rotational deviation's variationfor a period from the last-time leg landing of a leg to the current-timeleg landing, each time a leg of the robot lands on a floor via a landingoperation of the robot, and said position estimating means determinesthe estimated position of said robot at each landing using the posturerotational deviation's variation between landings.
 15. The self-positionestimating device for a leg type movable robot according to claim 1,wherein the position of the robot estimated by said position estimatingmeans is a contact position of the leg, which comes into contact withthe floor in the landing operation of the robot.
 16. The self-positionestimating device for a leg type movable robot according to claim 1,wherein the self-position estimating device further comprises floorreaction force detecting means for detecting a floor reaction forceapplied to said robot, and said position estimating means estimates adeformation of said robot based on said detected floor reaction forceand determines the estimated position of said robot using at least theestimated deformation.
 17. The self-position estimating device for a legtype movable robot according to claim 1, further comprising means forcorrecting at least one of the detected or estimated value of the actualposture of said predetermined part and the estimated position of saidrobot based on at least information about the position of a targetobject, a floor surface or an obstacle, on a map stored previously andinformation about the relative position of the robot with respect to thetarget object, which is recognized with environment recognition means,an image pickup device, mounted on said robot.
 18. The self-positionestimating device for a leg type movable robot according to claim 1,further comprising means for estimating the position of a target objectbased on at least the position of said robot estimated by said positionestimating means and information about the relative position of saidrobot with respect to the target object, which is recognized withenvironment recognition means, an image pickup device, mounted on saidrobot.
 19. The self-position estimating device for a leg type movablerobot according to claim 1, further comprising means for determining thedirection of gazing of environment recognition means, an image pickupdevice, mounted on said robot based on at least the estimated positionof said robot and the position of a target object, a floor surface or anobstacle, on a map stored previously.
 20. A self-position estimatingdevice for a leg type movable robot that is controlled to follow adetermined desired gait, comprising: an accelerometer for detecting atranslational acceleration that is mounted on said robot; an angularvelocity sensor for detecting an angular velocity in an inertial spacethat is mounted on said robot; geometrical position estimating means fordetermining a first estimated position, which is a geometricallyestimated value of the vertical position of a predetermined part of saidrobot or the center of gravity of said robot, based on at least any of adesired movement with said desired gait, a displacement detection valueof a joint of said robot and a desired displacement value of the joint;and inertial-navigation-like position estimating means for determining asecond estimated position, which is an inertial-navigation-likeestimated value of the vertical position of said predetermined part orthe total center of gravity of said robot, by an inertial navigationmethod based on at least a detection value of said accelerometer and adetection value of said angular velocity sensor and correcting thesecond estimated position based on at least the difference between saidfirst estimated position and said second estimated position.
 21. Theself-position estimating device for a leg type movable robot accordingto claim 20, wherein said predetermined part is a body of said robot.22. The self-position estimating device for a leg type movable robotaccording to claim 20, wherein the self-position estimating devicefurther comprises floor reaction force detecting means for detecting afloor reaction force applied to said robot, and said geometricalposition estimating means estimates a deformation of said robot based onsaid detected floor reaction force and determines said first estimatedposition using the estimated deformation.
 23. The self-positionestimating device for a leg type movable robot according to claim 20,wherein said inertial-navigation-like position estimating means correctssaid second estimated position in such a manner that the differencebetween said first estimated position and said second estimated positionis brought close to
 0. 24. The self-position estimating device for a legtype movable robot according to claim 20, wherein the desired gait ofsaid robot is a gait including a floating period in which all the legsof the robot float in the air, and said inertial-navigation-likeposition estimating means sets the correction amount of said secondestimated position at substantially 0 in said floating period.
 25. Theself-position estimating device for a leg type movable robot accordingto claim 20, further comprising means for correcting at least one of thesaid first estimated position and said second estimated position basedon at least information about the position of a target object, a floorsurface or an obstacle, on a map stored previously and information aboutthe relative position of the robot with respect to the target object,which is recognized with environment recognition means, an image pickupdevice, mounted on said robot.
 26. The self-position estimating devicefor a leg type movable robot according to claim 20, further comprisingmeans for estimating the position of a target object based on at leastsaid second estimated position and information about the relativeposition of said robot with respect to the target object, which isrecognized with environment recognition means, an image pickup device,mounted on said robot.
 27. The self-position estimating device for a legtype movable robot according to claim 20, further comprising means fordetermining the direction of gazing of environment recognition means, animage pickup device, mounted on said robot based on at least said secondestimated position and the position of a target object, a floor surfaceor an obstacle, on a map stored previously.
 28. A self-positionestimating device for a leg type movable robot that is controlled tofollow a determined desired gait, comprising: an accelerometer fordetecting a translational acceleration that is mounted on said robot;posture rotational deviation calculating means for determining atemporal variation of posture rotational deviation, which is thedifference between a detected or estimated value of an actual posture ofa predetermined part of said robot and a desired posture of saidpredetermined part in said desired gait, as a posture rotationaldeviation's variation; rotation center determining means for determiningthe rotation center of the variation of said posture rotationaldeviation; geometrical position estimating means for determining a firstestimated position, which is an estimated value of the position of saidpredetermined part or the total center of gravity of said robot, on theassumption that said robot rotates about said rotation center by saidposture rotational deviation's variation; and inertial-navigation-likeposition estimating means for calculating a second estimated position,which is an estimated value of the position of the predetermined part orthe total center of gravity of said robot, by an inertial navigationmethod based on at least a detection value of said accelerometer and adetected or estimated value of an actual posture of said predeterminedpart, and correcting the second estimated position based on at least thedifference between the first estimated position and the second estimatedposition.
 29. The self-position estimating device for a leg type movablerobot according to claim 28, wherein said geometrical positionestimating means comprises means for determining a second coordinatesystem, which is obtained by rotating a first coordinate system thatdescribes said desired gait about said rotation center by said posturerotational deviation's variation, and said geometrical positionestimating means determines the first estimated position of saidpredetermined part or the total center of gravity seen from a globalcoordinate system in such a manner that the position of saidpredetermined part or the total center of gravity seen from said firstcoordinate system, which is recognized from at least any of a desiredmovement with said desired gait, a displacement detection value of ajoint of said robot and a desired displacement value of the joint,agrees with the first estimated position of said predetermined part orthe total center of gravity seen from said second coordinate system. 30.The self-position estimating device for a leg type movable robotaccording to claim 29, wherein said predetermined part is a body of saidrobot.
 31. The self-position estimating device for a leg type movablerobot according to claim 29, wherein said posture rotational deviationincludes at least a posture rotational deviation component of saidpredetermined part in a yaw direction.
 32. The self-position estimatingdevice for a leg type movable robot according to claim 29, wherein theself-position estimating device further comprises floor reaction forcedetecting means for detecting a floor reaction force applied to saidrobot, and said geometrical position estimating means estimates adeformation of said robot based on said detected floor reaction forceand determines said first estimated position using the estimateddeformation.
 33. The self-position estimating device for a leg typemovable robot according to claim 29, wherein the desired gait of saidrobot is a gait including a floating period in which all the legs of therobot float in the air, and said rotation center determining means setssaid rotation center at the center of gravity of said robot during saidfloating period and sets said rotation center at an actual floorreaction force central point, a desired ZMP of the desired gait or apoint in the vicinity of the points during a period other than thefloating period.
 34. The self-position estimating device for a leg typemovable robot according to claim 29, wherein saidinertial-navigation-like position estimating means corrects said secondestimated position in such a manner that the difference between saidfirst estimated position and said second estimated position is broughtclose to
 0. 35. The self-position estimating device for a leg typemovable robot according to claim 29, wherein the desired gait of saidrobot is a gait including a floating period in which all the legs of therobot float in the air, and said inertial-navigation-like positionestimating means sets the correction amount of said second estimatedposition at substantially 0 in said floating period.
 36. Theself-position estimating device for a leg type movable robot accordingto claim 28, wherein said predetermined part is a body of said robot.37. The self-position estimating device for a leg type movable robotaccording to claim 28, wherein said posture rotational deviationincludes at least a posture rotational deviation component of saidpredetermined part in a yaw direction.
 38. The self-position estimatingdevice for a leg type movable robot according to claim 28, wherein theself-position estimating device further comprises floor reaction forcedetecting means for detecting a floor reaction force applied to saidrobot, and said geometrical position estimating means estimates adeformation of said robot based on said detected floor reaction forceand determines said first estimated position using the estimateddeformation.
 39. The self-position estimating device for a leg typemovable robot according to claim 28, wherein the desired gait of saidrobot is a gait including a floating period in which all the legs of therobot float in the air, and said rotation center determining means setssaid rotation center at the center of gravity of said robot during saidfloating period and sets said rotation center at an actual floorreaction force central point, a desired ZMP of the desired gait or apoint in the vicinity of the points during a period other than thefloating period.
 40. The self-position estimating device for a leg typemovable robot according to claim 28, wherein saidinertial-navigation-like position estimating means corrects said secondestimated position in such a manner that the difference between saidfirst estimated position and said second estimated position is broughtclose to
 0. 41. The self-position estimating device for a leg typemovable robot according to claim 28, wherein the desired gait of saidrobot is a gait including a floating period in which all the legs of therobot float in the air, and said inertial-navigation-like positionestimating means sets the correction amount of said second estimatedposition at substantially 0 in said floating period.
 42. Theself-position estimating device for a leg type movable robot accordingto claim 28, further comprising means for correcting at least any of thesaid first estimated position, said second estimated position and thedetected or estimated value of the actual posture of said predeterminedpart based on at least information about the position of a targetobject, a floor surface or an obstacle, on a map stored previously andinformation about the relative position of the robot with respect to thetarget object, which is recognized with environment recognition means,an image pickup device, mounted on said robot.
 43. The self-positionestimating device for a leg type movable robot according to claim 28,further comprising means for estimating the position of a target objectbased on at least said second estimated position and information aboutthe relative position of said robot with respect to the target object,which is recognized with environment recognition means, an image pickupdevice, mounted on said robot.
 44. The self-position estimating devicefor a leg type movable robot according to claim 28, further comprisingmeans for determining the direction of gazing of environment recognitionmeans, an image pickup device, mounted on said robot based on at leastsaid second estimated position and the position of a target object, afloor surface or an obstacle, on a map stored previously.
 45. Aself-position estimating device for a leg type movable robot that iscontrolled to follow a determined desired gait, comprising: floorreaction force detecting means for detecting a floor reaction forceapplied to said robot; posture rotational deviation calculating meansfor determining a temporal variation of posture rotational deviation,which is the difference between a detected or estimated value of anactual posture of a predetermined part of said robot and a posture ofsaid predetermined part in said desired gait, as a posture rotationaldeviation's variation; rotation center determining means for determiningthe rotation center of the variation of said posture rotationaldeviation; geometrical position estimating means for determining a firstestimated position, which is an estimated position of said predeterminedpart or the total center of gravity of said robot, on the assumptionthat said robot rotates about said rotation center by said posturerotational deviation's variation; and dynamical position estimatingmeans for calculating a second estimated position, which is an estimatedposition of said predetermined part or the total center of gravity ofsaid robot, through a dynamical calculation based on at least adetection value of said floor reaction force detecting means and adetected or estimated value of said actual posture and correcting thesecond estimated position based on at least the difference between thefirst estimated position and the second estimated position.
 46. Theself-position estimating device for a leg type movable robot accordingto claim 45, wherein said geometrical position estimating meanscomprises means for determining a second coordinate system, which isobtained by rotating a first coordinate system that describes saiddesired gait about said rotation center by said posture rotationaldeviation's variation, and said geometrical position estimating meansdetermines the first estimated position of said predetermined part orthe total center of gravity seen from a global coordinate system in sucha manner that the position of said predetermined part or the totalcenter of gravity seen from said first coordinate system, which isrecognized from at least any of a desired movement with said desiredgait, a displacement detection value of a joint of said robot and adesired displacement value of the joint, agrees with the first estimatedposition of said predetermined part or the total center of gravity seenfrom said second coordinate system.
 47. The self-position estimatingdevice for a leg type movable robot according to claim 46, wherein saidpredetermined part is a body of said robot.
 48. The self-positionestimating device for a leg type movable robot according to claim 46,wherein said posture rotational deviation includes at least a posturerotational deviation component of said predetermined part in a yawdirection.
 49. The self-position estimating device for a leg typemovable robot according to claim 46, wherein said geometrical positionestimating means estimates a deformation of said robot based on saiddetected floor reaction force and determines said first estimatedposition using the estimated deformation.
 50. The self-positionestimating device for a leg type movable robot according to claim 46,wherein the desired gait of said robot is a gait including a floatingperiod in which all the legs of the robot float in the air, and saidrotation center determining means sets said rotation center at thecenter of gravity of said robot during said floating period and setssaid rotation center at an actual floor reaction force central point, adesired ZMP of the desired gait or a point in the vicinity of the pointsduring a period other than the floating period.
 51. The self-positionestimating device for a leg type movable robot according to claim 46,wherein said dynamical position estimating means corrects said secondestimated position in such a manner that the difference between saidfirst estimated position and said second estimated position is broughtclose to
 0. 52. The self-position estimating device for a leg typemovable robot according to claim 46, wherein the desired gait of saidrobot is a gait including a floating period in which all the legs of therobot float in the air, and said dynamical position estimating meanssets the correction amount of said second estimated position atsubstantially 0 in said floating period.
 53. The self-positionestimating device for a leg type movable robot according to claim 45,wherein said predetermined part is a body of said robot.
 54. Theself-position estimating device for a leg type movable robot accordingto claim 45, wherein said posture rotational deviation includes at leasta posture rotational deviation component of said predetermined part in ayaw direction.
 55. The self-position estimating device for a leg typemovable robot according to claim 45, wherein said geometrical positionestimating means estimates a deformation of said robot based on saiddetected floor reaction force and determines said first estimatedposition using the estimated deformation.
 56. The self-positionestimating device for a leg type movable robot according to claim 45,wherein the desired gait of said robot is a gait including a floatingperiod in which all the legs of the robot float in the air, and saidrotation center determining means sets said rotation center at thecenter of gravity of said robot during said floating period and setssaid rotation center at an actual floor reaction force central point, adesired ZMP of the desired gait or a point in the vicinity of the pointsduring a period other than the floating period.
 57. The self-positionestimating device for a leg type movable robot according to claim 45,wherein said dynamical position estimating means corrects said secondestimated position in such a manner that the difference between saidfirst estimated position and said second estimated position is broughtclose to
 0. 58. The self-position estimating device for a leg typemovable robot according to claim 45, wherein the desired gait of saidrobot is a gait including a floating period in which all the legs of therobot float in the air, and said dynamical position estimating meanssets the correction amount of said second estimated position atsubstantially 0 in said floating period.
 59. The self-positionestimating device for a leg type movable robot according to claim 45,further comprising means for correcting at least any of the said firstestimated position, said second estimated position and the detected orestimated value of the actual posture of said predetermined part basedon at least information about the position of a target object, a floorsurface or an obstacle, on a map stored previously and information aboutthe relative position of the robot with respect to the target object,which is recognized with environment recognition means, an image pickupdevice, mounted on said robot.
 60. The self-position estimating devicefor a leg type movable robot according to claim 45, further comprisingmeans for estimating the position of a target object based on at leastsaid second estimated position and information about the relativeposition of said robot with respect to the target object, which isrecognized with environment recognition means, an image pickup device,mounted on said robot.
 61. The self-position estimating device for a legtype movable robot according to claim 45, further comprising means fordetermining the direction of gazing of environment recognition means, animage pickup device, mounted on said robot based on at least said secondestimated position and the position of a target object, a floor surfaceor an obstacle, on a map stored previously.